All challenges
Medium 0 solved 0% acceptance

Smallest Missing Coin Sum

Find the first positive amount that cannot be made from the available coins.

Problem

You may select any subset of the supplied coins. Each individual coin may be used at most once, even when multiple coins share a value. Find the smallest positive integer amount that no selection can produce.

Implement missing_coin_sum(coins).

Input

coins: The values of the available coins; duplicates represent separate coins.

Output

Return the smallest positive impossible amount.

Constraints

1 ≤ number of coins ≤ 200,000. Each value is between 1 and 1,000,000,000.

Examples

Example 1
Input:
coins = [1, 1, 4]

Expected output:
expected = 3
Input:
std::vector<long long> coins = {1, 1, 4};

Expected output:
long long expected = 3;
Input:
long[] coins = new long[] {1, 1, 4};

Expected output:
long expected = 3;

Explanation

Amounts 1 and 2 use the one-valued coins. No available subset totals 3.

Example 2
Input:
coins = [2, 3]

Expected output:
expected = 1
Input:
std::vector<long long> coins = {2, 3};

Expected output:
long long expected = 1;
Input:
long[] coins = new long[] {2, 3};

Expected output:
long expected = 1;

Explanation

There is no way to make 1 because every coin is worth at least 2.

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.