Предмет: Информатика, автор: krolikovnaaaa

Дима – программист, поэтому на его компьютере всегда открыто много окон. Так как у Димы не очень большой монитор, на нём может отображаться только одно окно. В каждый момент времени оконный менеджер хранит список открытых окон, первое окно списка отображается на мониторе. Для переключения окон Дима использует сочетание клавиш 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

Ответы

Автор ответа: iceoleg
2

Ответ:

# Прочитаем входные данные

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.

Наконец, мы выводим окончательное положение окна.

Похожие вопросы