👤
Arcq123
a fost răspuns

se considera doua tablouri unidimensionale A si B ce contin n respectiv m elemente. verificati daca exista in B o secventa de n elemente ( situate pe pozitii consecutive), nu neaparat in aceeasi ordine. daca nu exista afisati 0, altfel, afisati primul indice din B de la care se regasesc toate elementele din A. ex pt n=3, m=7, A=(2,4,1) si B=(3,4,8,4,2,1,9) se va afisa 4.

Răspuns :

#include <iostream>

using namespace std;

int main()

{

int A[25], B[25], C[25], n, m, i, j, k, ok, p=0, aux;

cout<<"n="; cin>>n;

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

 cout<<"A["<<i<<"]="; cin>>A[i];

}

cout<<"m="; cin>>m;

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

 cout<<"B["<<i<<"]="; cin>>B[i];

}

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

 for(j=i+1;j<=n;j++)

  if(A[i]>A[j]){

   aux=A[i]; A[i]=A[j]; A[j]=aux;

  }

i=1;

while(i<=m-n+1 && p==0)

{

 k=0;

 for(j=i;j<=n+i-1;j++)

 {

  k++; C[k]=B[j];

 }

 for(j=1;j<n;j++)

  for(k=j+1;k<=n;k++)

   if(C[j]>C[k]){

    aux=C[j]; C[j]=C[k]; C[k]=aux;

   }

 ok=1;

 for(j=1;j<=n;j++)

  if(A[j]!=C[j])

   ok=0;

 if(ok) p=i;

 else i++;

}

cout<<"Pozitie:"<<p;

return 0;

}