2628 - H2
Context[edit | edit source]
În urma referendumului a rămas doar un șir de numere naturale a[1], a[2], …, a[n] .
Cerinţa[edit | edit source]
Să se determine cel mai mic număr care apare exact o dată în șir.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, apoi șirul n numere naturale, separate prin spații.
Date de ieșire[edit | edit source]
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[edit | edit source]
- 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[edit | edit source]
- Intrare
10 5 3 8 7 3 3 2 5 9 5
- Ieșire
Datele de intrare respecta cerintele impuse. 2
Explicație[edit | edit source]
Numerele care apar o singură dată în șir sunt: 8, 7, 2, 9. Cel mai mic este 2.
Exemplul 2[edit | edit source]
- Intrare
9 5 3 8 7 3 3 2 5 9 5
- Ieșire
Datele de intrare nu respecta cerintele impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> 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()
</syntaxhighlight>