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ță înx
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; }