# PBinfo #259 – Eliminare2 – Rezolvare C++

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

## Enunț

Cerinţa
Se dau două şiruri, a şi b, cu n respectiv m elemente, numere naturale cu cel mult 9 cifre. Să se verifice dacă şirul b poate fi obţinut din şirul a, prin eliminarea unor elemente, fără a modifica ordinea inițială a elementelor.

Date de intrare
Fişierul de intrare eliminare2.in conţine pe prima linie numărul n; urmează n numere naturale, dispuse pe mai multe linii, reprezentând elementele şirului a. Următoarea linie conţine numărul m, şi urmează m numere naturale, dispuse pe mai multe linii, elementele şirului b.

Date de ieşire
Fişierul de ieşire eliminare2.out va conţine pe prima linie valoarea 1, dacă putem obţine şirul b din a prin eliminarea unor valori, respectiv 0 în caz contrar.

Restricţii şi precizări

1 ≤ n,m ≤ 100.000

Exemplu:
eliminare2.in

5 
1 6 3 
1 3 
3
6 1 3
eliminare2.out

1

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
ifstream fin("eliminare2.in");
ofstream fout("eliminare2.out");
int n,a[100005], m, b[100005];
int main(){
	fin >> n;
	for(int i=1;i<=n;++i)
		fin >> a[i];
	fin >> m;
	for(int i=1;i<=m;++i)
		assert(fin >> b[i]);
	int j=1;
	for(int i=1;i<=n;++i)
		if(j<=m)
			if(a[i]==b[j])
				j++;
	if(j==m+1)
		fout << 1;
	else
		fout << 0;
	return 0;
}
```

## Resurse

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