Rezolvare completă PbInfo #259 Eliminare2

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

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Eliminare2:

#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;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #259 Eliminare2

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #259 Eliminare2 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!