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
#include <bits/stdc++.h> using namespace std; ifstream cin("eliminare2.in"); ofstream cout("eliminare2.out"); int a[100001] , b[100001]; int main() { int n , m , c = 0; cin >> n; for(int i = 0 ; i < n ; ++i) cin >> a[i]; cin >> m; for(int j = 0 ; j < m ; ++j) cin >> b[j]; for(int i = 0 ; i < n ; ++i) if(a[i]==b[c]) c++; if(c == m)cout << 1; else cout << 0; return 0; }