Условия задач можно скачать с сайта acm.bmstu.ru вот по этой ссылке http://acm.bmstu.ru/archive/20091220.pdf
Как любил говорить наш любимый математик: "Задача простая."
Понятно что каждая ладья занимает одно место по вертикали и одно - по горизонтали следовательльно, выигрывает тот, кто занимает последнее свободное место. Но если нет свободных мест по горизонатали, то свободные места по вертикали уже не имеют смысла, на них не встать, и на оборот. Значит имеет смысл рассматривать только минимальльное из двух значений (пусть S минимальное значение из N и М). Если игроков всего двое, то, начав с первого свободного места, первый игрок будет занимать всегда нечетные свободные места, а второй, начав со второго, всегда четные. Следовательно последнее свободное место на доске занимает тот игрок, чья четность хода совпадает с четностью S.
решение:
Найти S = min(N,M)
если S четное вывести 2, иначе вывести 1.
реализация (засчитанна на соревновании как правильная):
#include <stdio.h>
int main()
{
unsigned int n, m, z;
scanf("%u%u", &n, &m);
if(n>m)
{
z=m;
}
else
{
z=n;
}
printf("%u\n",z%2?1:2);
}
int main()
{
unsigned int n, m, z;
scanf("%u%u", &n, &m);
if(n>m)
{
z=m;
}
else
{
z=n;
}
printf("%u\n",z%2?1:2);
}