3794 - Interclas No Memory 1

From Bitnami MediaWiki

Cerința

Se dau două șiruri de numere naturale, cu n, respectiv m elemente, ordonate crescător. Să se determine al treilea șir, care să conţină, în ordine crescătoare, elementele din primele două şiruri.

Date de intrare

Fișierul de intrare filein.txt conține pe prima linie numerele naturale n, respectiv m, iar apoi pe a doua linie numerele primului șir, și pe a treia linie, numerele celui de-al doilea șir, elementele șirurilor fiind separate prin spații.

Date de ieșire

Fișierul de ieșire fileout.txt va conține numerele celui de-al treilea șir, separate prin spații.

Restricții și precizări

  • 1 ≤ n, m ≤ 100.000
  • elementele șirului vor fi mai mici decât 1.000.000.000

Exemplul 1

filein.txt
7 8
1 3 4 6 7 8 8
2 4 5 6 8 9 9 12
fileout.txt
Datele introduse corespund restricțiilor impuse.
1 2 3 4 4 5 6 6 7 8 8 8 9 9 12

Exemplul 2

filein.txt
7 8
1 3 4 6 7 8 1000000000
2 4 5 6 8 9 9 12
fileout.txt
Datele introduse nu corespund restricțiilor impuse.

Rezolvare

<syntaxhighlight lang="python" line="1">

  1. 3794 - Interclas No Memory 1

def validare(sir_validare1, sir_validare2): # functia de validare a datelor de intrare

   if len(sir_validare1) > 100000 or len(sir_validare2) > 100000:
       raise ValueError
   for numar in sir_validare1 + sir_validare2:
       if not isinstance(numar, int) or numar >= 1000000000:
           raise ValueError
   fisier_iesire.write("Datele introduse corespund restrictiilor impuse.\n")


def rezolvare(sir_rezolvare1, sir_rezolvare2): # functia de rezolvare

   al_treilea_sir = sorted(sir_rezolvare1 + sir_rezolvare2)
   fisier_iesire.write(' '.join(map(str, al_treilea_sir)))


if __name__ == '__main__':

   fisier_intrare = open("filein.txt", "r")  # declararea fisierelor
   fisier_iesire = open("fileout.txt", "w")  # fisierul out trebuie declarat cu optiunea "w" (write)
   try:
       n, m = map(int, fisier_intrare.readline().split())
       sir1 = list(map(int, fisier_intrare.readline().split()))
       sir2 = list(map(int, fisier_intrare.readline().split()))
       validare(sir1, sir2)  # apelul functiei de validare
       rezolvare(sir1, sir2)  # apelul functiei de rezolvare
   except ValueError:
       fisier_iesire.write("Datele introduse nu corespund restrictiilor impuse.")

</syntaxhighlight>