Два игрока, Паша и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может: добавить в кучу один камень или увеличить количество камней в куче в 2 раза. Например, имея кучу из 20 камней, за один ход можно получить кучу из 21 камня или из 40 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится более 39. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 40 или больше камней.
В начальный момент в куче было S камней, 2 ≤ S ≤ 39.
Говорят, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.
Известно, что Вася выиграл своим первым ходом после неудачного первого хода Паши. Укажите минимальное значение S, когда такая ситуация возможна.
#include <iostream>
using namespace std;
int main()
{
int arr[]{10,8,3,9,15,25,38};
int buff; // временная переменная для обмена элементов местами
// Сортировка массива пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// меняем элементы местами
buff = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = buff;
}
}
}
// Вывод отсортированного массива на экран
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int arr[]{10,8,3,9,15,25,38};
int buff; // временная переменная для обмена элементов местами
// Сортировка массива пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// меняем элементы местами
buff = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = buff;
}
}
}
// Вывод отсортированного массива на экран
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
Объяснение: