Retour aux défis
Moyen 0 résolus 0 % de réussite

Vider deux piles de pièces

Décidez si des retraits par paires peuvent vider deux piles.

Ce que vous allez apprendre

  • Transformer un processus en équations
  • Vérifier les conditions de divisibilité et d'équilibre
  • Répondre en temps constant

Problème

À chaque coup, vous retirez deux pièces d'une pile et une pièce de l'autre. Les deux orientations sont autorisées. Vous ne pouvez jamais retirer plus de pièces qu'il n'en reste dans une pile. Déterminez si les deux piles peuvent être vidées, c'est-à-dire atteindre zéro.

Implémentez coin_piles(left, right).

Entrée

left : Le nombre de pièces dans la pile de gauche.

right : Le nombre de pièces dans la pile de droite.

Sortie

Retournez true si les deux piles peuvent être vidées ; sinon, retournez false.

Contraintes

0 ≤ left, right ≤ 1 000 000 000. Deux piles déjà vides constituent un résultat réussi.

Exemples

Exemple 1
Entrée :
left = 4
right = 2

Sortie attendue :
expected = True
Entrée :
long long left = 4;
long long right = 2;

Sortie attendue :
bool expected = true;
Entrée :
long left = 4;
long right = 2;

Sortie attendue :
bool expected = true;

Explication

Retirez (2, 1) deux fois : (4, 2) → (2, 1) → (0, 0).

Exemple 2
Entrée :
left = 4
right = 1

Sortie attendue :
expected = False
Entrée :
long long left = 4;
long long right = 1;

Sortie attendue :
bool expected = false;
Entrée :
long left = 4;
long right = 1;

Sortie attendue :
bool expected = false;

Explication

Le seul premier coup possible laisse (2, 0), après quoi aucun coup ne permet de vider la pile de gauche.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Chaque coup retire exactement trois pièces au total, donc le nombre total de pièces doit respecter ce schéma.

Indice 2

Aucune pile ne peut descendre sous zéro, donc une pile ne peut pas dépasser ce que l’autre peut supporter.

Indice 3

Vérifie à la fois le total et la différence entre les piles.

Complexité attendue

temps O(1), espace supplémentaire O(1)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.