Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Падающий шарик

(Время: 1 сек. Память: 32 Мб Сложность: 60%)

Алексей разрабатывает новую аркадную игру «Падающий шарик». Есть башня из N этажей, расположенных друг под другом. Каждый этаж – это горизонтальная платформа шириной M клеток, пронумерованных слева направо числами от 1 до M. На каждом этаже проделано одно круглое отверстие («лунка») шириной 1 клетка. Сразу после того, как шарик впервые оказывается над первым этажом, все лунки начинают одновременно двигаться: сначала на одну клетку вправо каждую секунду; достигнув правой стены (M), лунка разворачивается и каждую секунду перемещается на одну клетку влево, пока не дойдёт до левой стены (1), затем разворачивается снова – и так бесконечно. Шарик впервые появляется над первым этажом именно над лункой.

Игрок управляет шариком:

  1. Падение сквозь лунку занимает ровно 1 секунду. После этого шарик оказывается поверх следующего этажа точно под тем же номером клетки, где была лунка, и может сразу начинать двигаться или падать дальше.
  2. Пока шарик не совпадает по координате с лункой следующего этажа, каждую секунду он может:
    • остаться в той же клетке,
    • сместиться на 1 клетку влево,
    • сместиться на 1 клетку вправо.

Любое такое действие также длится 1 секунду.

Требуется определить минимальное число секунд, необходимое, чтобы шарик успешно пролетел сквозь все N лунок и покинул нижний этаж.

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

В первой строке входного файла INPUT.TXT находятся два натуральных числа N – количество этажей и M – ширина платформы (1 ≤ N ≤ 106; 1 ≤ M ≤ 104). Во второй строке даны N натуральных чисел ai - исходная позиция лунки на i-м этаже (1≤ ai ≤ M).

Лунки нумеруются сверху вниз: a1 – верхний этаж, aN – нижний.

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

В выходной файл OUTPUT.TXT выведите ответ на задачу.

Примеры

INPUT.TXTOUTPUT.TXT
13 4
1 4 3
4
24 10
7 4 5 5
16
31 10
7
1

Пояснение к первому примеру

Автор задачи

Владимир Игоревич Лукьянчиков

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 ЕГЭ по информатике
 Авторские задачи
 Тренировочные олимпиады
 Фёдор Меньшиков. Олимпиадные задачи по программированию, 2006
 Сборник задач В.И. Лукьянчикова
 Булева Алгебра
 Геометрия
 Динамическое программирование
 Комбинаторика
 Разбор строк
 Разное
 Разное 2
 Рекурсия, перебор
 Системы счисления
 Сортировка и последовательности
 Теория графов
 Формула
 Целочисленная арифметика
 Целочисленная арифметика 2
 Структуры данных
 Бинарный поиск
 Занимательная математика
 Занимательная математика 2
 Занимательная математика 3
 A. Адресация - 2
 B. Адресация - 3
 C. Адресация - 1
 D. Городок 2
 E. Игра с друзьями - 2
 F. Исследование
 G. Преграда
 H. Задание с матрицей
 I. Киллер-судоку
 J. Бросок в кольцо
 K. Исследовательская группа
 L. Падающий шарик
 M. Палиндромные диапазоны 1
 N. Палиндромные диапазоны 2
 O. Манускрипт
 P. Минимальное преобразование
 Q. Коробки в контейнере
 R. Маяки
 S. Поймай бабочку
 T. Точки на окружностях
 U. Исполнитель 5
 V. Параллельные процессы 2
 W. Код активации криптомодуля
 X. На уроке рисования
 Y. Сбой в квантовом тахометре
 Z. Лаборатория

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru