Problema
Ver original (inglês)Cada jogada remove duas moedas de uma pilha e uma moeda da outra. Qualquer orientação é permitida. Nunca é permitido remover mais moedas do que restam em uma pilha. Determine se ambas as pilhas podem terminar com zero moedas.
Implemente coin_piles(left, right).
Entrada
left: O número de moedas na pilha da esquerda.
right: O número de moedas na pilha da direita.
Saída
Retorne true se for possível esvaziar ambas as pilhas; caso contrário, retorne false.
Restrições
0 ≤ left, right ≤ 1.000.000.000. Duas pilhas vazias já são consideradas um resultado bem-sucedido.
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
Remova (2, 1) duas vezes: (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
A única jogada possível deixa (2, 0), e após isso não há como esvaziar a pilha da esquerda.
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.