воскресенье, 20 декабря 2009 г.

Олимпиада по программированию для школьников старших классов. Заочный тур. 20 декабря 2009 года. Задача А.

Условия задач можно скачать с сайта 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", &amp;n, &amp;m);
if(n&gt;m)
{
z=m;
}
else
{
z=n;
}
printf("%u\n",z%2?1:2);
}


Комментариев нет:

Отправить комментарий