Volver a los desafíos
Intermedio 0 resueltos 0% de aceptación

Vaciar Dos Montones de Monedas

Decide si es posible vaciar ambos montones mediante extracciones emparejadas.

Lo que aprenderás

  • Convertir un proceso en ecuaciones
  • Comprobar condiciones de divisibilidad y equilibrio
  • Responder en tiempo constante

Problema

Ver original (inglés)

En cada movimiento se retiran dos monedas de un montón y una moneda del otro. Se permite cualquiera de las dos orientaciones. Nunca puedes retirar más monedas de las que quedan en un montón. Determina si es posible que ambos montones terminen en cero.

Implementa coin_piles(left, right).

Entrada

left: El número de monedas en el montón izquierdo.

right: El número de monedas en el montón derecho.

Salida

Devuelve true si ambos montones pueden vaciarse; de lo contrario, devuelve false.

Restricciones

0 ≤ left, right ≤ 1,000,000,000. Dos montones vacíos ya se consideran un resultado exitoso.

Ejemplos

Ejemplo 1
Entrada:
left = 4
right = 2

Salida esperada:
expected = True
Entrada:
long long left = 4;
long long right = 2;

Salida esperada:
bool expected = true;
Entrada:
long left = 4;
long right = 2;

Salida esperada:
bool expected = true;

Explicación

Retira (2, 1) dos veces: (4, 2) → (2, 1) → (0, 0).

Ejemplo 2
Entrada:
left = 4
right = 1

Salida esperada:
expected = False
Entrada:
long long left = 4;
long long right = 1;

Salida esperada:
bool expected = false;
Entrada:
long left = 4;
long right = 1;

Salida esperada:
bool expected = false;

Explicación

El único primer movimiento posible deja (2, 0), tras lo cual no hay forma de vaciar el montón izquierdo.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Cada movimiento elimina exactamente tres monedas en total, así que la suma total debe ajustarse a ese patrón.

Pista 2

Ninguna pila puede bajar de cero, así que una pila no puede superar lo que la otra puede soportar.

Pista 3

Comprueba tanto el total como la diferencia entre las pilas.

Complejidad esperada

tiempo O(1), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.