Правила написания программ для турниров по игре "Жребий Крижановского"

Для участия в турнире по игре "Жребий Крижановского" игроки предоставляют программы на языке Паскаль или C/C++. Программа должна считывать из стандартного входного потока информацию о текущем состоянии игры и выводить в выходной поток единственное число, являющееся очередным ходом программы.

Входные данные: на вход программе подаются последовательно следующие числа

Выходные данные: программа должна выводить в стандартный выходной поток единственное число, являющееся очередным ходом. Число должно быть целым неотрицательным, не превосходящим n+1 (напоминаем, n - количество игроков в турнире, передается программе в качестве первого параметра).

На каждый ход программе отводится не более 1 секунды. Программа должна завершаться с кодом возврата 0.

Далее приводятся примерные схемы программ на C++ и Паскале. Рекомендуется по возможности не отклоняться от предложенных схем.

Примерная схема программы для тех, кто использует 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.

В ходе своей работы программам запрещается: