Коля и Вася, играют игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Коля. За однн ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза, Например. имея кучу из 15 камней, за один ход можно получить кучу из 16 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра заверцшается в тот момент, когда количество камней в куче становится не менее 25. Победителем считается игрок, сделавший поеледний ход, то есть первым получивший кучу, в которой будет 25 или больше камней. В начальный момент в куче было S камней, 1
var s:integer;finish,steps:integer;begin steps:=0;readln(s);readln(finish);while (s*2 < finish) do begin if ((s*2) >= finish) then s:= s*2 else if (s*2+1 < finish) and (s*2*2 < finish) then s:=s*2 else s:=s+1; inc(steps);end;writeln(steps);end.
Объяснение:
Программа играет по оптимальной стратегии, тогда и только тогда когда выигрывает, а когда проигрывает она играет не по оптимальной стратегии, но это не мешает ей принимать решения. Думайте головой не делайте, того чего не следует и победите за указанное количество шагов.