
Для участия в турнире по игре "Жребий Крижановского" игроки предоставляют программы на языке Паскаль или C/C++. Программа должна считывать из стандартного входного потока информацию о текущем состоянии игры и выводить в выходной поток единственное число, являющееся очередным ходом программы.
Входные данные: на вход программе подаются последовательно следующие числа
Выходные данные: программа должна выводить в стандартный выходной поток единственное число, являющееся очередным ходом. Число должно быть целым неотрицательным, не превосходящим n+1 (напоминаем, n - количество игроков в турнире, передается программе в качестве первого параметра).
На каждый ход программе отводится не более 1 секунды. Программа должна завершаться с кодом возврата 0.
Далее приводятся примерные схемы программ на C++ и Паскале. Рекомендуется по возможности не отклоняться от предложенных схем.
#include <iostream.h>
main()
{
int n; /* количество игроков */
int m; /* номер текущего хода */
int s; /* текущая сумма очков у программы */
int winners[10000]; /* список чисел, выигрывавших в предыдущих турах */
int i;
int move; /* ход программы */
cin >> n;
cin >> m;
cin >> s;
for (i=1; i<=m-1; i++)
cin >> winners[i];
/* Здесь должны размещаться операторы, приводящие к вычислению переменной move */
cout << move;
return 0;
}
Program kryzh;
Type
arr = array [1..10000] of integer;
Var
n : integer; { количество игроков }
m : integer; { номер текущего хода }
s : integer; { текущая сумма очков у программы }
winners : arr; { список чисел, выигрывавших в предыдущих турах }
i : integer;
move : integer; { ход программы }
Begin
Read (n);
Read (m);
Read (s);
For i := 1 to m-1 do
Read(winners[i]);
{ Здесь должны размещаться операторы, приводящие к вычислению переменной move }
Write(move);
End.
Рекомендуется также в конце программы (непосредственно перед выводом переменной move) выполнять проверку на попадание значения переменной move в требуемый диапазон от 1 до n+1.
В ходе своей работы программам запрещается: