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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!