Инопланетная неделя
На разных планетах длительность года разная, а значит и рабочая неделя там тоже может быть не семидневной. Известно, что длительность недели на некой далекой планете составляет X дней, также известно, что сейчас на этой планете день недели под номером D. Определите, какой день недели был на далекой планете K дней назад.
Формат входных данных
Три целых числа:
X - длительность недели на некой далекой планете (1 < X < 1000)
D - номер текущего дня недели (1 < D < X)
K - количество дней, которые прошли со дня начало отсчета (1 < K < 109)
Формат выходных данных
Целое число: номер дня в недели для искомого дня
Примеры
входные данные выходные данные
3 1 4
3
Ответы
Давай будем K раз изменять наш текущий день на "вчерашний", т.е. уменьшать на 1. Если после очередного такого уменьшения мы получили, что наш текущий день стал равен 0, значит, мы уже перешли в последний день предыдущей недели. Тогда мы говорим, что наш текущий день равен X.
Схематично изобразил это на вложении 1.
Код на PascalABC
var x, d, k, // Числа из ввода
i : integer;
begin
read(x, d, k); // Ввод чисел
for i:=1 to k do // Будем постепенно идти на k дней назад
begin
d:=d-1; // Идём на один день назад
if (d < 1) then
d:=x; // Переходим на предыдущую неделю, если необходимо
end;
writeln(d); // Выводим ответ
end.
--------------------------------------------------
Вложено решение как файл.
![](https://st.uroker.com/files/c90/c909c99f795701a97b725e034e509860.png)
Ввод: X ^ D ^ K С/П.
П2 -> П1 -> П0
ИП2 ^ ИП0 / [x] ИП0 * -
ИП1 - /-/ ИП0 +
^ ИП0 / [x] ИП0 * -
x=0 28 ИП0 С/П
На индикаторе номер нужного дня.
![](https://st.uroker.com/files/c90/c909c99f795701a97b725e034e509860.png)