# PBinfo #3791 – InterclasNoMemory – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Se dau două șiruri de numere naturale, cu n, respectiv m elemente, ordonate crescător. Să se scrie definiția funcției interclasare care nu are parametri și nu întoarce niciun rezultat, și care să determine al treilea șir care să conţină, în ordine crescătoare, elementele din primele două şiruri.

Date de intrare
Fișierul de intrare file1.txt conține pe prima linie numărul natural n, apoi numerele primului șir, iar fișierul file2.txt conține pe prima linie numărul natural m, apoi numerele celui de-al doilea șir, acestea fiind separate prin spații.

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

Restricții și precizări

1 ≤ n, m ≤ 100.000
numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 1.000.000.000
declarările variabilelor pentru citirea sau scrierea fișierelor trebuie realizată exclusiv în interiorul funcției cerute

Exemplu:
file1.txt

7
1 3 4 6 7 8 8 
file2.txt

8
2 4 5 6 8 9 9 12
file.out

1 2 3 4 4 5 6 6 7 8 8 8 9 9 12

## Cod sursă C++

```cpp
#include <fstream>
#include <iostream>
using namespace std;
void interclasare()
{
    ifstream fin1("file1.txt");
	ifstream fin2("file2.txt");
	ofstream fout("file.out");
    int n, m, x, y, i=1, j=1;
    fin1>>n; fin2>>m;
    fin1>>x; fin2>>y;
    while(i<=n && j<=m)
    {
        if(x<y) fout<<x<<' ', fin1>>x, ++i;
        else fout<<y<<' ', fin2>>y, ++j;
    }
    while(i<=n) fout<<x<<' ', fin1>>x, ++i;
    while(j<=m) fout<<y<<' ', fin2>>y, ++j;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3791)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3791/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3791/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
