Informatică, întrebare adresată de raluu7, 9 ani în urmă

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
in C++

Răspunsuri la întrebare

Răspuns de Teo000
2
#include <iostream>
 using namespace std;
  int main() {
   int m,n, x[1005], y[1005], k;
    cin>>n;
     for (int i=1; i<=n; i++) cin>>x[i];
     cin>>m;
    for (int i=1; i<=m; i++) cin>>y[i];
    for (int i=1; i<=n; i++) {
         int k1=i, k2=1;
         while (x[k1]==y[k2] && k2<=m) {k1++; k2++; }
        if (k2==m+1) k=i; }
     if (k!=0) cout<<k;
     else cout<<"NU";
    return 0;
}
Alte întrebări interesante