fbpx

Problema #520 – Secventa2 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un vector x cu n elemente, numere naturale și un vector y cu m elemente, numere naturale. Să se determine de câte ori este vectorul y secvență în vectorul x.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, elementele vectorului x, apoi numărul m, iar apoi m numere naturale, elementele vectorului y.

Date de ieșire

Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.

Restricții și precizări

  • 1 ≤ m ≤ n ≤ 1000

Exemplu

Intrare

10
8 5 8 5 8 3 8 5 8 6 
3
8 5 8

Ieșire

3

Explicație

Cele trei apariții ale secvenței y în x sunt:

(8 5 8) 5 8 3 8 5 8 6
8 5 (8 5 8) 3 8 5 8 6
8 5 8 5 8 3 (8 5 8) 6

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a[1000],b[1000], n ,m;
    cin >> n;
    int c=0;
    for(int i = 0 ; i < n ; ++i)
    cin >> a[i];
    cin >> m;
    for(int i = 0 ; i < m ; ++i)
    cin >> b[i];
    for(int i = 0 ; i <= n-m ; ++i)
    {
        int cnt=0;
        for(int j = i ; j < i+m ; ++j)
        {
            if(a[j]==b[j-i])
            cnt++;
        }
        if(cnt==m)
        c++;
    }
    cout << c;
}
Comentarii

S-ar putea sa iti placa