ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1368. Пусти козла в огород 3

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
В очередной раз встаёт проблема: как пустить козла в огород, чтобы он, с одной стороны, не умер с голоду, а с другой — не съел бы всё. Огород представляет собой поле из элементарных квадратов 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 г.