Problema
Ver traduçãoEach move removes two coins from one pile and one coin from the other. Either orientation is allowed. You may never remove more coins than remain. Determine whether both piles can end at zero.
Implement coin_piles(left, right).
Input
left: The number of coins in the left pile.
right: The number of coins in the right pile.
Output
Return true if the piles can both be emptied; otherwise return false.
Restrições
0 ≤ left, right ≤ 1,000,000,000. Two empty piles are already a successful result.
Exemplos
Entrada:
left = 4
right = 2
Saída esperada:
expected = True
Entrada:
long long left = 4;
long long right = 2;
Saída esperada:
bool expected = true;
Entrada:
long left = 4;
long right = 2;
Saída esperada:
bool expected = true;
Explicação
Remove (2, 1) twice: (4, 2) → (2, 1) → (0, 0).
Entrada:
left = 4
right = 1
Saída esperada:
expected = False
Entrada:
long long left = 4;
long long right = 1;
Saída esperada:
bool expected = false;
Entrada:
long left = 4;
long right = 1;
Saída esperada:
bool expected = false;
Explicação
The only possible first move leaves (2, 0), after which no move can empty the left pile.
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.