3786 - Toate: Difference between revisions

From Bitnami MediaWiki
Am creat de la zero.
 
mNo edit summary
Line 26: Line 26:
; toate.in
; toate.in
: 5
: 5
  923 926 329 429 3959
: 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:
    # citim numărul de numere din fișier
    with open('toate.in', 'r') as f:
    n = int(f.readline().strip())
        # citim numărul de numere din fișier
    print("n =", n)
        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ă
        # citim numerele din fișier și le stocăm într-o listă
    numere = [int(f.readline().strip()) for i in range(n)]
        numere = []
    print("numere =", 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ă cifra nouă
        # 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' not in str(numar):
            if '9' in str(numar):
        if numar > max_fara_noua:
                continue
            max_fara_noua = numar
            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:
    f.write(str(max_fara_noua))
            if exista_valoare_maxima:
    print("Valoarea maximă scrisă în fișier.")
                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>

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