3794 - Interclas No Memory 1
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">
- 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>