INFOMAN брой 7

{
           Решение на задача 4 за 1998г. от задочния конкурс по
       информатика на сп. Computer. Автор: Светлин Наков, В.Търново
      --------------------------------------------------------------

     Дадена е лента, разграфена на N клетки. Двама играчи A и B играят чрез
 последователни ходове игра, при която на всеки ход съответният играч зачер-
 тава най-много K съседни клетки, които дотогава са били незачертани.  Пече-
 ли играчът, който направи последния ход. Напишете програма, която при даде-
 ни N и K определя дали съществува печеливша стратегия за играча A който за-
 почва първи играта.
     РЕШЕНИЕ: Печелившата стратегия на първия играч при първия ход да разде-
 ли лентата на две еднакви части. След това каквото и да играе пртивникът B,
 първият играч играе симетрично. Той винаги може да играе симетрично,защото
 при първия ход е разделил лентата на две еднакви части и когато играч B иг-
 рае някакъв ход в едната част,  играч A може да играе симетричен ход в дру-
 гата част. Ако първия играч на първия ход не може да играе така, че да раз-
 дели дъската на две еднакви части, той губи играта и няма печеливша страте-
 гия. Това е възможно единствено при K=1 и N четно число.  Тогава изходът е
 предопределен. Ако K > 1, винаги играч A печели, защото той винаги може да
 зачертае една или две клетки (1 при нечетно N  и 2 при четно N) от средата
 на лентата при което ленатата става на две еднакви ленти с по  (N-1) div 2
 клетки. Тогава каквото и да играе играч B, играч A винаги ще може да играе
 същия ход симетрично - на другата част от лентата.  Това означава, че след
 всеки ход на B играч A има ход, който да играе. И понеже клетките са краен
 брой, то в един момент играч B няма да има какво да играе и ще загуби игра-
 та. Играч A не може да загуби, след всеки ход на B той имам какво да играе
 и затова е сигурно, че той ще направи последния ход. При K=1 играта зависи
 само от четността на N, понеже на всеки ход всеки играч трябва да зачертае
 точно една клетка.
}

VAR N,K: longint;
BEGIN
  Write('N='); ReadLn(N);
  Write('K='); ReadLn(K);
  if (K>1) or odd(N) then
    WriteLn('Player A wins')
  else
    WriteLn('Player B wins');
END.