Informatică, întrebare adresată de jackoneill302, 8 ani în urmă

Salut ma puteti ajuta va rog.
Cerință
Ți se dă un șir de n numere întregi, reprezentând pachetele trimise și un alt șir cu n - 1 numere întregi, reprezentând pachetele care au ajuns cu succes până la tine. Elementele din cel de-al doilea șir NU vor fi în aceeași ordine ca și cele din primul, dar toate valorile din al doilea șir se găsesc și în primul. Identifică elementul care se găsește în primul șir, dar lipsește din al doilea.

Date de intrare
Pe prima linie se va găsi numărul n, iar pe următoarele două linii elementele celor două șiruri.
Date de ieșire
Programul va afișa pe ecran numărul X, care reprezintă elementul lipsă din cel de-al doilea șir.
Date de intrare
10
32 34 89 -67 45 21 34 5 9 7
34 32 45 89 34 21 5 7 9
Date de ieșire
-67
asa am facut eu pogramul pana acuma dar pe platforma primesc numai 20 de puncte
#include

using namespace std;

int main()
{
int n, a[1000], b[1000];
cin >> n;
for (int i = 0; i < n; i++){
cin >> a[i];
}
for (int i = 0; i < n - 1; i++){
cin >> b[i];
}if (n == 1){
cout << a[0];
return 0;
}
for (int i = 0; i < n - 1; i++){
if (a[i] != b[i]){
cout << a[i];
return 0;
}
}
cout << a[n-1];
return 0;
}


lucaciucandrei: in primul rand tu in algoritmul tau nu faci nicio cautare doar compari liniar elementele din ambii vectori si afisezi ceva ciudat la final

Răspunsuri la întrebare

Răspuns de lucaciucandrei
6

COROANA

#include<iostream>

using namespace std;

int binarySearch(int arr[], int l, int r, int x) {

   while (l <= r) {

       int m = l + (r - l) / 2;

       if (arr[m] == x)

           return m;

       if (arr[m] < x)

           l = m + 1;

       else

           r = m - 1;

   }

   return -1;

}

int main() {

   int a[10001], b[10001], n;

   cin >> n;

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

       cin >> a[i];

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

       cin >> b[i];

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

       if (binarySearch(b, 1, n - 1, a[i]) == -1) {

           cout << a[i] << ' ';

           return 0;

       }

   return 0;

}


jackoneill302: Multumesc
lucaciucandrei: unde ? te-ai capiat?
TrinityZ: bun si pana la urma care e rezolvarea ca nici una nu merge
Alte întrebări interesante