Back to challenges
Medium 0 solved 0% acceptance

Empty Two Coin Piles

Decide whether paired removals can empty two piles.

What you'll learn

  • Turn a process into equations
  • Check divisibility and balance conditions
  • Answer in constant time

Problem

Each 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.

Constraints

0 ≤ left, right ≤ 1,000,000,000. Two empty piles are already a successful result.

Examples

Example 1
Input:
left = 4
right = 2

Expected output:
expected = True
Input:
long long left = 4;
long long right = 2;

Expected output:
bool expected = true;
Input:
long left = 4;
long right = 2;

Expected output:
bool expected = true;

Explanation

Remove (2, 1) twice: (4, 2) → (2, 1) → (0, 0).

Example 2
Input:
left = 4
right = 1

Expected output:
expected = False
Input:
long long left = 4;
long long right = 1;

Expected output:
bool expected = false;
Input:
long left = 4;
long right = 1;

Expected output:
bool expected = false;

Explanation

The only possible first move leaves (2, 0), after which no move can empty the left pile.

How to approach it

Try on your own first, then open one hint at a time.

Hint 1

Each move removes exactly three coins total, so the overall coin count must fit that pattern.

Hint 2

Neither pile can be reduced below zero, so one pile cannot exceed what the other can support.

Hint 3

Check both the total amount and the difference between piles.

Expected complexity

O(1) time, O(1) extra space

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.