Informatică, întrebare adresată de horiaradu60, 8 ani în urmă

Va rog ajutati-ma la problema asta cu c++ #519 pe pbinfoCerinț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.

Răspunsuri la întrebare

Răspuns de pmarian98
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,m,a[1001], b[1001],ok;

   cin>>n;

   for(int i=1;i<=n;i++){

       cin>>a[i];

   }

   cin>>m;

   for(int i=1;i<=m;i++){

       cin>>b[i];

   }

   if(m>n){

       cout<<"NU";

       return 0;

   }

   for(int st=1;st<=n-m+1;st++){ ///st - poz din sirul a de unde pornesc

       ok=1;

       for(int i=1;i<=m;i++) ///potrivesc sirul b cu secv din A incepand de la poz st

       {

           if(a[st+i-1]!=b[i])

           {

               ok=0;

           }

       }

       if(ok==1){

           cout<<st;

           return 0;

       }

   }

   cout<<"NU";

   return 0;

}

Explicație:


horiaradu60: Multumesc mult!
Alte întrebări interesante