Петя на уроке информатике составил
программу (см. ниже), печатающую некоторую последовательность чисел.
const n=…; k=…;
var x:array[1..n] of integer;
i,j,S:integer;
Begin
For i:=1 to n do x[i]:=1;
i:=0;
For j:=1 to n do
Begin
S:=0;
While S<k do
Begin
i:=i+1;
if i>n then i:=1;
S:=S+x[i];
End;
x[i]:=0;
writeln(i);
End;
End.
const int n=…, k=…;
int main() {
int x[n + 1], i, j, S;
for (i = 1; i <= n; ++i) x[i] = 1;
for (j = 1; j <= n; ++j) {
S = 0;
while (S < k) {
++i;
if (i > n) i = 1;
s += x[i];
}
x[i] = 0;
printf("%d\n", i);
}
return 0;
}
Помогите Пете и напишите новую
программу, которая бы выводила в выходной файл только одно число – последнее из
Петиной последовательности.
Ограничения
1 <= n, k <= 100 000.
Входные данные
В строке находятся разделенные
пробелами два целых числа: n и k.
Выходные данные
В выходном файле должно быть
задано одно целое число – последнее число, которое печатается в Петиной
программе.
Пример