In C++ rezolvarea
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.
Precizări și restricții
1 ≤ n ≤ 1 000
elementele din șir nu vor avea valori mai mari de 100 000, respectiv mai mici de -100 000
Exemple
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 iesire
- 67
Răspunsuri la întrebare
Răspuns de
2
Salut!
Ai rezolvarea problemei mai jos
#include <iostream>
#include <algorithm>
using namespace std;
bool caut_bin(int x, int v[], int n)
{
int st = 0, dr = n;
while (st <= dr)
{
int m = (st + dr) / 2;
if (x == v[m])
{
return true;
}
if (x < v[m])
{
dr = m - 1;
}
else
{
st = m + 1;
}
}
return false;
}
int main()
{
int n, a[1001], b[1001];
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> a[i];
}
for (int i = 0; i < n - 1; ++i)
{
cin >> b[i];
}
//Sortam crescator cele 2 siruri
sort(a, a + n);
sort(b, b + n - 1);
for (int i = 0; i < n; ++i)
{
if (!caut_bin(a[i], b, n - 1)) //daca nu s-a gasit elementul a[i] in sirul b
{
cout << a[i] << " ";
}
}
return 0;
}
IonutzG:
Multumesc , codul functioneaza bine pe exemplul din problema , insa cand incarc problema pe platforma primesc 80 din 100 de puncte ( asta inseamna ca acest cod nu acopera un anumit caz). Ai putea te rog frumos sa incerci sa descoperi si sa rezolvi problema ?
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă