Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может а) добавить в кучу один камень;
б) увеличить количество камней в куче в два раза.
Игра завершается в тот момент, когда количество камней в куче становится не менее 30. Если при этом в куче оказалось не более 45 камней, то победителем считается игрок, сделавший последний ход. В противном случае победителем становится его противник. В начальный момент в куче было S камней, 1 ≤ S ≤ 29.
ответьте на следующие вопросы:
Вопрос 1. Известно, что Ваня выиграл своим первым ходом после первого хода Пети. Назовите мини-мальное значение S, при котором это возможно.
Вопрос 2. Определите, два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Вопрос 3. Найдите значение S, при которых одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
// Внимание! Если программа не работает, обновите версию!
begin
var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
Writeln('*** Исходный массив ***');
var d:=MatrRandom(m,n,-99,99);
d.Println(4); Writeln(4*d.ColCount*'-');
var min:=d.ElementsByRow.Min; // значение минимального элемента
Writeln('Искомое среднее: ',d.ElementsByRow.Where(t->t<>min).Average)
end.
Пример
Количество строк и столбцов в массиве: 4 7
*** Исходный массив ***
7 -31 80 21 38 -36 16
42 93 -11 74 -6 37 -71
15 90 -71 -88 -71 70 -27
12 83 41 79 72 91 -88
Искомое среднее: 24.5