За один ход убираются две монеты из одной кучки и одна монета из другой. Можно выбирать любую из кучек для каждого варианта. Нельзя убирать больше монет, чем осталось в кучке. Определите, можно ли довести обе кучки до нуля.
Реализуйте функцию coin_piles(left, right).
Входные данные
left: количество монет в левой кучке.
right: количество монет в правой кучке.
Выходные данные
Верните true, если обе кучки можно опустошить; иначе верните false.
Ограничения
0 ≤ left, right ≤ 1 000 000 000. Две пустые кучки считаются успешным результатом.
Примеры
Ввод:
left = 4
right = 2
Ожидаемый вывод:
expected = True
Ввод:
long long left = 4;
long long right = 2;
Ожидаемый вывод:
bool expected = true;
Ввод:
long left = 4;
long right = 2;
Ожидаемый вывод:
bool expected = true;
Пояснение
Два раза убираем (2, 1): (4, 2) → (2, 1) → (0, 0).
Ввод:
left = 4
right = 1
Ожидаемый вывод:
expected = False
Ввод:
long long left = 4;
long long right = 1;
Ожидаемый вывод:
bool expected = false;
Ввод:
long left = 4;
long right = 1;
Ожидаемый вывод:
bool expected = false;
Пояснение
Единственный возможный первый ход оставляет (2, 0), после чего нельзя опустошить левую кучку.
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.