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

Daca ma poate ajuta cineva cu problema asta in c++? Se numeste Element lipsa 4

În problema anterioară ai studiat cazul fericit în care un singur pachet dintr-un grup de n pachete transmise prin rețea folosind protocolul UDP se pierde pe drum. De data aceasta, nivelul de aglomerație al rețelei face să se piardă nu doar unul, ci m pachete! Poți să identifici cât mai rapid pachetele pierdute, înainte să înceapă un nou sezon de Black mirror și să ajungă și mai puține pachete la tine?

Cerință
Ți se dă un șir de n numere întregi, reprezentând pachetele trimise și un alt șir cu n - m 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. Totuși în cazul în care există mai multe pachete cu aceeași valoare, ele ajung în ordinea pozițiilor din șirul inițial.

În plus, toate valorile din al doilea șir se găsesc și în primul. Identifică elementele lipsă, ținând cont că ele nu sunt neapărat pe poziții consecutive în primul șir.

Date de intrare
Pe prima linie se vor găsi numerele n și m, separate printr-un spațiu, iar pe următoarele două linii elementele celor două șiruri.

Date de ieșire
Programul va afișa pe ecran, în ordinea în care apar în primul șir, separate prin câte un spațiu, cele m elemente care lipsesc din al doilea șir. Dacă nu s-au pierdut date între cele două șiruri, programul va afișa pe ecran mesajul Nu s-au pierdut date.

Precizări și restricții
1 ≤ n ≤ 1 200
0 ≤ m < n
elementele din șir nu vor avea valori mai mari de 100 000, respectiv mai mici de -100 000
Exemple
Date de intrare Date de ieșire
7 3
12 34 45 29 100 87 32
100 87 12 34 45 29 32

Răspunsuri la întrebare

Răspuns de cristianchelm3
2

Nu ar trebui sa copiezi exercitiile, ai mai dat si 1200 lei la WellCode, macar invata ceva din codul asta:

#include<iostream>

using namespace std;

int main() {

   long int arr1Length, lostElements;

   cin >> arr1Length >> lostElements;

   long int arr1[arr1Length];

   for (long int i = 0; i < arr1Length; i++) {

       cin >> arr1[i];

   }

   long int arr2Length = arr1Length - lostElements;

   long int arr2[arr2Length];

   for (long int i = 0; i < arr2Length; i++) {

           cin >> arr2[i];

       }

   if (lostElements == 0) {

       cout << "Nu s-au pierdut date";

   }

   else {

       for (long int i = 0; i < arr1Length && arr2Length; ++i) {

           int j = 0, lostElement = 0;

           for (; j < arr2Length; j++) {//1 1

               if (arr1[i] == arr2[j]) {

                   lostElement = 1;

                   break;

               }

           }

           if (lostElement == 1) {

               for (int h = j; h < arr2Length - 1; h++) {

                   arr2[h] = arr2[h + 1];

               }

               arr2Length--;

               for (int h = i; h < arr1Length - 1; h++) {

                   arr1[h] = arr1[h + 1];

               }

               arr1Length--;

               i--;

           }

       }

   for (int i = 0; i < arr1Length; ++i) {

       cout << arr1[i] << ' ';

   }

   }

   return 0;

}

Alte întrebări interesante