В очередной раз встаёт проблема: как пустить козла в огород,
чтобы он, с одной стороны, не умер с голоду, а с другой — не съел бы всё. Огород представляет собой поле из элементарных квадратов 1 × 1. Хозяева козла умеют ставить секции забора в отдельных элементарных квадратах на поле. Для того, чтобы прокормиться, козлу требуется участок из 1 ≤ K ≤ 106 квадратов. В начальный момент времени козёл находится в начале координат, то есть в квадрате с координатами (0, 0). Требуется, поставив минимальное число секций, предоставить козлу участок ровно из K квадратов. Площадь считается огороженной, если оттуда невозможно выйти, перемещаясь по вертикали и горизонтали.
Исходные данные
Единственная строка ввода содержит целое число K — площадь участка, выделенного козлу.
Результат
В первой строке выведите целое число N — количество граничных элементов (квадратов с забором), в следующих N строках — координаты граничных элементов в порядке обхода.
Пример
исходные данные | результат |
---|
3 | 7
-1 0
0 1
1 2
2 1
2 0
1 -1
0 -1 |
Автор задачи: Алексей Лахтин
Источник задачи: IX Чемпионат Урала по спортивному программированию. Екатеринбург, УрГУ, 19-24 апреля 2005 г.