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

Cerința Se dă un vector x cu n elemente numere naturale, ordonate crescător, și un vector y cu m elemente, de asemenea numere naturale. Verificați pentru fiecare element al vectorului y dacă apare în x. Date de intrare Programul citește de la tastatură numărul n, iar apoi cele n elemente ale vectorului x. Apoi și citește m și cele m elemente ale lui y. Date de ieșire Programul va afișa pe ecran m valori 0 sau 1, separate prin exact un spațiu. A j-a valoare afișată este 1, dacă al j-lea element al șirului y apare în x, respectiv 0 în caz contrar. Restricții și precizări 1 ≤ n ≤ 25000 1 ≤ m ≤ 200000 elementele celor 2 vectori vor fi mai mici decât 1.000.000.000

Răspunsuri la întrebare

Răspuns de MihaiCălinPelle
8
O idee catre rezolvare ar fi :
int x[25001],y[20001],i,j,ok,n,m;
cin>>n>>m;
for (i=1;i<=n;i++)
cin>>x[i];
for(i=1;i<=m;i++)
cin>>y[i];
ok=0;
i=1;
for(j=1;j<=m;j++)
{
while(ok==0)
{
while(i<=n)
{
if(x[i]==y[j])
ok=1;

i++;
}
}
if(ok==1)
cout<<1;
else
cout<<0;

cout<<" ";
}

Aceasta e doar o idee,nu sunt sigur daca merge.Daca te-a ajutat fa-ma te rog sa stiu comentand aici cu ceva gen:"m-a ajutat".

MihaiCălinPelle: Oricum in mare ar trebui sa mearga .Posibil va mai trebui modificat putin codul dar in rest ar trbui sa fie ok
dana2000bc: multumesc!
MihaiCălinPelle: cp
Alte întrebări interesante