#include <iostream> using namespace std; int main() { //elementele trebuie sa fie ordonate crescator in cei doi vectori int n, a[11]; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int m, b[11]; cin>>m; for(int i=1;i<=m;i++) cin>>b[i]; //ne vom lua un al treilea vector in care le vom interclasa int c[21]; int k=0; //cu ajutorul acestei variabile vom pune elementele in vector int i=1, j=1; //vom parcurge simultan cei doi vectori si vom compara elementele while(i<=n && j<=m) { if(a[i]<b[j]) //punem cel mai mic element dintre cele doua { k++; c[k]=a[i]; i++; } else { k++; c[k]=b[j]; j++; } } // exista posibilitate sa terminam elementele dintr-un vector, iar din altul nu while(i<=n) //cat timp mai avem elemente in vectorul a[] { k++; c[k]=a[i]; i++; } while(j<=m) //cat timp mai avem elemente in vectorul b[] { k++; c[k]=b[j]; j++; } // afisam vectorul obtinut for(i=1;i<=k;i++) cout<<c[i]<<' '; }
- citim cei doi vectori, pe rand
- ne vom lua un al treilea vector in care vom adauga cate un element, comparand in paralel elementele celor doi vectori si adaugam cel mai mic dintre doua elemente la un moment dat
- cu ajutorul variabile i vom parcurge primul vector, iar cu j vom parcurge cel de-al doilea
- in momentul in care vom adauga un element dintr-un vector, vom creste si indicele corespunzator
- la final, vom verifica daca ne-au mai ramas elemente in unul din vectori, iar daca raspunsul este afirmativ le vom adauga in cel de-al treilea vector