2628 - H2

De la Universitas MediaWiki

Context

Î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. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu respecta cerintele impuse." , iar daca se indeplinesc, se afiseaza mesajul "Datele de intrare respecta cerintele impuse."

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

Exemplul 1

Intrare
10
5 3 8 7 3 3 2 5 9 5
Ieșire
Datele de intrare respecta cerintele impuse.
2

Explicație

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

Exemplul 2

Intrare
9
5 3 8 7 3 3 2 5 9 5


Ieșire
Datele de intrare nu respecta cerintele impuse.


Rezolvare

def main():
    try:
        n = int(input())
        sir = list(map(int, input().split()))

        if len(sir) == n and all(0 <= numar <= 2000000000 for numar in sir):
            if 10 <= n <= 1000000:
                frecvente = {}
                aparitii = set()

                for numar in sir:
                    if numar in frecvente:
                        aparitii.discard(frecvente[numar])
                    else:
                        frecvente[numar] = 0
                        aparitii.add(numar)

                if aparitii:
                    numar_minim = min(aparitii)
                    print(f"Datele de intrare respecta cerintele impuse.")
                    print(f"Numărul minim care apare exact o dată în șir este: {numar_minim}")
                else:
                    print("Nu există niciun număr care să apară exact o dată în șir.")
            else:
                print("Datele de intrare nu respecta cerintele impuse.")
        else:
            print("Datele de intrare nu respecta cerintele impuse.")
    except ValueError:
        print("Datele de intrare nu respecta cerintele impuse.")

if __name__ == "__main__":
    main()