3794 - Interclas No Memory 1
Cerința[edit | edit source]
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[edit | edit source]
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[edit | edit source]
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[edit | edit source]
- 1 ≤ n, m ≤ 100.000
- elementele șirului vor fi mai mici decât 1.000.000.000
Exemplul 1[edit | edit source]
- 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[edit | edit source]
- 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[edit | edit source]
<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>