0415 - unique
Sursa: Unique
Cerinţa[edit | edit source]
Dându-se un șir de numere naturale, să se determine câte dintre ele apar o singură dată.
Date de intrare[edit | edit source]
Programul citește de la tastatură cel mult 1.000.000 de numere naturale.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", iar apoi se va afișa pe ecran numărul de numere care apar o singură dată în șir. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricţii şi precizări[edit | edit source]
- numerele citite vor fi mai mici decât 200.000
- în șir sunt cel puțin un număr și cel mult 1.000.000 de numere naturale
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- 5 4 3 2 3 3 5 6 4 3 3
- Ieșire
- Datele sunt corecte.
- 2
Exemplul 2[edit | edit source]
- Intrare
- 1234542 34 1 2 313 231 31
- Ieșire
- Datele nu corespund restricțiilor impuse.
Exemplul 3[edit | edit source]
- Intrare
- 100 100 100 100 100 100 200 200
- Ieșire
- Datele sunt corecte.
- 0
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 4015 unique
def numarare_elemente(vector):
numar_unice = 0 for i in range(len(vector)): if vector.count(i) == 1: numar_unice += 1 print(numar_unice)
def conform_restrictiilor(vector):
for x in vector: if x > 200000: print("Datele nu sunt comform restricțiilor impuse.") return False if len(vector) > 1000000 or len(vector) == 0: print("Datele nu sunt comform restricțiilor impuse.") return False print("Datele sunt corecte.") return True
if __name__ == '__main__':
vector = list(map(int, input().split())) if conform_restrictiilor(vector) is True: numarare_elemente(vector)
</syntaxhighlight>
Explicaţie cod[edit | edit source]
Funcția numarare_elemente primește un vector ca argument și calculează numărul de elemente unice din vector. Variabila numar_unice inițializată la zero este incrementată de fiecare dată când este găsit un element unic în vector.
Funcția conform_restrictiilor primește, de asemenea, un vector ca argument și verifică dacă datele din vector îndeplinesc anumite restricții. Mai precis, verifică dacă fiecare element din vector este mai mic sau egal cu 200000 și dacă lungimea vectorului este mai mică sau egală cu 1000000 și diferită de zero. Dacă vectorul îndeplinește aceste restricții, funcția returnează True, altfel returnează False și afișează un mesaj de eroare.
În blocul principal al codului, se primește input-ul sub formă de vector și se verifică dacă datele îndeplinesc restricțiile impuse, folosind funcția conform_restrictiilor. Dacă datele sunt conforme, se calculează numărul de elemente unice din vector, folosind funcția numarare_elemente.