fbpx

Problema #519 – Secventa1 – 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 verifice dacă vectorul y este 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 p, reprezentând poziția din vectorul x de unde începe secvența y, dacă y este secvență în x, respectiv mesajul NU dacă y nu este secvență în x.

Restricții și precizări

  • 1 ≤ m ≤ n ≤ 1000
  • elementele celor doi vectori vor fi indexate de la 1
  • dacă vectorul y este de mai multe ori secvență în x se va afișa poziția de început a primei apariții

Exemplu

Intrare

10
8 5 8 5 2 3 10 7 1 6 
6
8 5 2 3 10 7

Ieșire

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

int main()
{
    int a[1000] , b[1000] , n , m , indice=0 ,ok=0;
    cin >> n;
    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 && ok==0)
        {
        indice = i+1;
        ok++;
        }
    }
    if(ok==0)
    cout << "NU";
    else
    cout << indice;
}
Comentarii

S-ar putea sa iti placa