Олимпиадный тренинг

Задача . A. Страницы


Задача

Темы: реализация

Пользователь ainta занимается созданием веб-сайта. Сегодня он разрабатывает навигацию по страницам сайта. Сайт ainta состоит из n страниц, пронумерованных целыми числами от 1 до n. Предположим, что сейчас посетитель сайта находится на p-ой странице, тогда навигация будет выглядеть следующим образом:

<< p - k p - k + 1 ... p - 1 (p) p + 1 ... p + k - 1 p + k >>

Когда посетитель кликает кнопку "<<", он переходит на страницу 1; когда посетитель кликает кнопку ">>", он переходит на страницу n. Если посетитель кликает некоторое число, он переходит на соответствующую страницу.

Чтобы навигация по сайту выглядела более презентабельно, требуется, чтобы выполнялись условия:

  • Если страница номер 1 отображается в навигации, то кнопку "<<" отображать не надо.
  • Если страница номер n отображается в навигации, то кнопку ">>" отображать не надо.
  • Если номер страницы меньше 1 или больше n, ее в навигации отображать не надо.
 

Вам заданы числа n, k, p. Помогите ainta, напишите программу, которая выведет строку навигации по заданным параметрам. Обратите внимание на тестовые примеры для лучшего понимания условия.

Входные данные

В первой и единственной строке содержатся три целых числа n, p, k (3 ≤ n ≤ 100; 1 ≤ p ≤ n; 1 ≤ k ≤ n)

Выходные данные

Выведите надлежащую строку навигации. Следуйте формату вывода из тестовых примеров.


Примеры
Входные данныеВыходные данные
1 17 5 2
<< 3 4 (5) 6 7 >>
2 6 5 2
<< 3 4 (5) 6
3 6 1 2
(1) 2 3 >>
4 6 2 2
1 (2) 3 4 >>
5 9 6 3
<< 3 4 5 (6) 7 8 9
6 10 6 3
<< 3 4 5 (6) 7 8 9 >>
7 8 5 4
1 2 3 4 (5) 6 7 8

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя