Поделитесь своими знаниями, ответьте на вопрос:
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) два камня или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 73. Победителем считается игрок, сделавший последний ход, то есть первым получивший такую позицию, что в кучах всего будет 73 или больше камней. В начальный момент в первой куче было 9 камней, во второй куче – S камней; 1 ≤ S ≤ 63. 1. Ваня выигрывает 1ым ходом после неудачного первого хода Пети. Назвать минимальное значение S. 2. Указать минимальное значение S при котором Петя побеждает 2ым ходом в независимости от хода Вани. 3. Найдите два значения S , при котором у Вани есть выигрышная стратегия победы при любом ходе Пети 1ым или 2ым ходом , но у него нет стратегии , гарантирующей победы в 1ом ходе. ответ записать в порядке возрастания.
Тернарная операция в C++ - это выражение вида (b ? x : y) (где b - логическое выражение, а x и y - одного типа). Она вернёт x, если выражение b истинно, и y, если b ложно.
Решение
В приложении расписаны координаты некоторых клеток, а также помечены точками те, которые по цвету отличаются от не помеченных. Если поискать, что у них общего, можно обнаружить, что у "невыколотых" клеток сумма координат по горизонтали и вертикали - чётная. Это "свойство" и используем для определения цвета клетки.
Код
#include <bits/stdc++.h>
using namespace std;
int main() {
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << ((x1 + y1) % 2 == (x2 + y2) % 2 ? "YES" : "NO") << endl;
return 0;
}