Răspuns :
Răspuns:
#include<iostream>
using namespace std;
int main(){
long n,m,i,j;
int x[1010],y[1010]; //Mai mult decat 1000 ca sa fii sigur
cout<<"n="; cin>>n; //Citire n
for(i=1;i<=n;i++) cin>>x[i]; //Citire n elemente
cout<<"m="; cin>>m; //Citire m
for(i=1;i<=m;i++) cin>>y[i]; //Citire m elemente
bool secventa=0; //Presupunem ca nu e secventa pentru a putea intra in for
for(i=1;i<=n-m+1&&!secventa;i++){ // !secventa inseamna ca secventa=1, cand gasim secventa nu mai trebuie sa cautam pentru ca se cere doar prima aparitie
secventa=1; //Presupun ca este secventa din pozitia i a vectorului x
for(j=1;j<=m;j++) //Parcurgem y
if(x[i+j-1]!=y[j]) secventa=0; //Parcurgem urmatoarele j-1 pozitii pentru a verifica daca y este secventa din pozitia i, daca nu sunt egale inseamna ca nu este secventa (j-1, -1 deoarece nu incepem de pe pozitia 0 ci 1 in y)
if(secventa) cout<<"Pozitia de inceput este: "<<i; //Daca este secventa afisam pozitia
}
if(!secventa) cout<<"NU"; //Daca nu este secventa NU
}
Explicație:
Explicatiie se gasesc in comentari
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.