3786 - Toate: Difference between revisions
Am creat de la zero. |
mNo edit summary |
||
| Line 26: | Line 26: | ||
; toate.in | ; toate.in | ||
: 5 | : 5 | ||
: 923 926 329 429 3959 | |||
; toate.out | ; toate.out | ||
: 42 | : 42 | ||
| Line 38: | Line 38: | ||
# deschidem fisierul pentru citire | # deschidem fisierul pentru citire | ||
with open('toate.in', 'r') as f: | try: | ||
with open('toate.in', 'r') as f: | |||
# citim numărul de numere din fișier | |||
try: | |||
n = int(f.readline().strip()) | |||
if n <= 0: | |||
print("Eroare: Numărul de numere trebuie să fie un întreg pozitiv.") | |||
except ValueError: | |||
print("Eroare: Numărul de numere trebuie să fie un număr întreg.") | |||
n = 0 | |||
# citim numerele din fișier și le stocăm într-o listă | |||
numere = [] | |||
for i in range(n): | |||
numar = f.readline().strip() | |||
try: | |||
numar = int(numar) | |||
if numar <= 0 or numar > 999999999: | |||
print("Eroare: Numărul trebuie să fie un întreg pozitiv cu cel mult 9 cifre.") | |||
else: | |||
numere.append(numar) | |||
except ValueError: | |||
print("Eroare: Datele de intrare trebuie să fie numere întregi.") | |||
# găsim numărul maxim fără | # găsim numărul maxim fără cifrele 9 | ||
max_fara_noua = 0 | max_fara_noua = 0 | ||
exista_valoare_maxima = False | |||
for numar in numere: | for numar in numere: | ||
if '9' in str(numar): | |||
continue | |||
exista_valoare_maxima = True | |||
if numar > max_fara_noua: | |||
max_fara_noua = numar | |||
# scriem rezultatul în fișierul toate.out | # scriem rezultatul în fișierul toate.out | ||
with open('toate.out', 'w') as f: | with open('toate.out', 'w') as f: | ||
if exista_valoare_maxima: | |||
f.write(str(max_fara_noua)) | |||
print("Valoarea cautata este afisata in fisierul toate.out.") | |||
else: | |||
f.write("Nu există nicio valoare maximă fără cifrele 9 în fișier.") | |||
except FileNotFoundError: | |||
print("Eroare: Fișierul de intrare nu există.") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 17:57, 2 April 2023
Cerinţa
De n numere sunt date, Şi cifra nouă e-n toate, Află ce număr devine Maxim făr’de nouă-n sine?
Notă
Vreme trece, vreme vine, Toate-s vechi şi nouă toate; Ce e rău şi ce e bine Tu te-ntreabă şi socoate;
(Mihai Eminescu, Glossă)
Date de intrare
Fișierul de intrare toate.in conține pe prima linie un număr n, iar pe urmatoarele linii cele n numere naturale.
Date de ieşire
Fișierul de ieșire toate.out va conține pe prima linie numărul maxim cerut.
Restricții și precizări
- 1 ≤ n ≤ 100.000
- numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 1.000.000.000
Exemplu
- toate.in
- 5
- 923 926 329 429 3959
- toate.out
- 42
Explicatie
Numărul maxim cerut este 42.
Rezolvare
<syntaxhighlight lang="python" line>
- deschidem fisierul pentru citire
try:
with open('toate.in', 'r') as f:
# citim numărul de numere din fișier
try:
n = int(f.readline().strip())
if n <= 0:
print("Eroare: Numărul de numere trebuie să fie un întreg pozitiv.")
except ValueError:
print("Eroare: Numărul de numere trebuie să fie un număr întreg.")
n = 0
# citim numerele din fișier și le stocăm într-o listă
numere = []
for i in range(n):
numar = f.readline().strip()
try:
numar = int(numar)
if numar <= 0 or numar > 999999999:
print("Eroare: Numărul trebuie să fie un întreg pozitiv cu cel mult 9 cifre.")
else:
numere.append(numar)
except ValueError:
print("Eroare: Datele de intrare trebuie să fie numere întregi.")
# găsim numărul maxim fără cifrele 9
max_fara_noua = 0
exista_valoare_maxima = False
for numar in numere:
if '9' in str(numar):
continue
exista_valoare_maxima = True
if numar > max_fara_noua:
max_fara_noua = numar
# scriem rezultatul în fișierul toate.out
with open('toate.out', 'w') as f:
if exista_valoare_maxima:
f.write(str(max_fara_noua))
print("Valoarea cautata este afisata in fisierul toate.out.")
else:
f.write("Nu există nicio valoare maximă fără cifrele 9 în fișier.")
except FileNotFoundError:
print("Eroare: Fișierul de intrare nu există.")
</syntaxhighlight>