# PBinfo #2628 – h2 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

În urma referendumului a rămas doar un șir de numere naturale a[1], a[2], …, a[n].

Cerința
Să se determine cel mai mic număr care apare exact o dată în șir.

Date de intrare
Programul citește de la tastatură numărul n, apoi șirul n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul m, reprezentând numărul minim care apare exact o dată în șir.

Restricții și precizări

10 ≤ n ≤ 1.000.000
0 ≤ a[i] ≤ 2.000.000.000
Se garantează că există cel puțin un număr care apare o singură dată.

Exemplu:
Intrare

10
5 3 8 7 3 3 2 5 9 5
Ieșire

2
Explicație
Numerele care apar o singură dată în șir sunt: 8, 7, 2, 9. Cel mai mic este 2.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
#define oo 2000000001
using namespace std;
unordered_map<int, int> M;
int main()
{
    int i, n, x, ans;
    cin >> n;
    for (i = 1; i <= n; i++)
    {
        cin >> x;
        M[x]++;
    }
    ans = oo;
    for (auto w : M)
    {
        if (w.second == 1 && ans > w.first)
                ans = w.first;
    }
    cout << ans << "\n";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2628)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2628/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2628/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
