Дима – программист, поэтому на его компьютере всегда открыто много окон. Так как у Димы не очень большой монитор, на нём может отображаться только одно окно. В каждый момент времени оконный менеджер хранит список открытых окон, первое окно списка отображается на мониторе. Для переключения окон Дима использует сочетание клавиш Alt + Tab. Если удерживать эту кнопку нажатой в течение T секунд, то T + 1-е по счёту окно в текущей нумерации переместится на первую позицию, а относительный порядок остальных окон не изменится. Например, на рисунке ниже показано, что произойдёт с порядком окон, если нажимать на Alt + Tab в течение 3 секунд.
Если держать Alt + Tab N – 1 секунду, то первым станет последнее окно из списка. Список открытых окон «зациклен», за последним окном следует первое окно из списка, т. е. если удерживать Alt + Tab нажатым N секунд, то окно, которое было первым в списке, останется на первом месте. Если удерживать Alt + Tab N + 1 секунду, на первое место переместится второе по счёту окно и т.д.
В начале рабочего дня любимая среда разработки Димы имела номер M в списке открытых окон. В течение дня Дима K раз использовал сочетание клавиш Alt + Tab. Определите, на какой позиции находится его любимая среда разработки в конце дня.
Формат входных данных
Первая строка входных данных содержит целое число N, 1 ≤ N ≤ 105 – количество окон на экране.
Вторая строка содержит целое число M, 1 ≤ M ≤ N – номер, который имела любимая среда разработки Димы в начале дня. Третья строка содержит целое число K, 1 ≤ K ≤ 105 – количество раз, которое Дима нажимал Alt + Tab. В последующих K строках содержатся целые положительные числа, не превосходящие 105 – длительность каждого нажатия в секундах.
Формат выходных данных
Программа должна вывести одно целое число – позицию любимой среды Димы в конце рабочего дня.
входные данные
3
2
3
1
5
2
Выходные данные
3
Ответы
Ответ:
# Прочитаем входные данные
n = int(input())
m = int(input())
k = int(input())
# Инициализируем положение окна
pos = m
# Обработка каждого нажатия Alt+Tab
for i in range(k):
# Считаем длительность нажатия
t = int(input())
# Вычисляем новую позицию окна
pos = (pos + t - 1) % n + 1
# Выводим конечное положение окна
print(pos)
Объяснение:
Сначала мы считываем входные значения n, m и k, которые представляют собой количество окон, начальную позицию любимой среды разработки Димы и количество нажатий Alt+Tab, соответственно.
Мы инициализируем переменную pos начальным положением окна. Затем мы обрабатываем каждое нажатие Alt+Tab. Для каждого нажатия мы считываем длительность t нажатия из входных данных. Затем мы вычисляем новое положение окна как (pos + t - 1) % n + 1.
Выражение (pos + t - 1) % n вычисляет новую позицию окна, как если бы список окон не был "зациклен". Затем мы добавляем 1 к результату, чтобы убедиться, что позиция находится в диапазоне от 1 до n, поскольку позиции индексируются по 1.
Наконец, мы выводим окончательное положение окна.