# PBinfo #3794 – InterclasNoMemory1 – 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 determine al treilea șir, care să conţină, în ordine crescătoare, elementele din primele două şiruri.

Date de intrare
Fișierul de intrare file.in 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 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
elementele șirului vor fi mai mici decât 1.000.000.000

Exemplu:
file.in

7 8
1 3 4 6 7 8 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;
int main()
{
    /// luam cele2 siruri si le punem in 2 fisiere diferite
    ifstream fin("file.in");
 	ofstream fout1("file1.txt");
  	ofstream fout2("file2.txt");
  	int n, m, x;
  	fin>>n>>m;
  	for(int i=1;i<=n;++i)
      	fin>>x,
  		fout1<<x<<' ';
  	for(int i=1;i<=m;++i)
      	fin>>x,
  		fout2<<x<<' ';
  	fin.close();
  	fout1.close();
  	fout2.close();
  	/// aplicam interclasarea
  	ifstream fin1("file1.txt");
    ifstream fin2("file2.txt");
    ofstream fout("file.out");
  	int y, i=1, j=1;
    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;
  	return 0;
}
```

## Resurse

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