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

Rezolvare in C++
Cerință
Se dă un șir de n numere întregi asupra căruia se fac următoarele operații: eliminarea ultimului element din șir (pop) și adăugarea unui element x la finalul șirului (push x). Să se afișeze șirul după aplicarea operațiilor date.
Date de intrare
Se citește numărul natural n, reprezentând numărul de elemente ale șirului inițial și n numere întregi, reprezentând elementele șirului. Apoi se citesc m valori de k unde k poate avea valoarea 1 sau 2. Dacă k are valoarea 1, se va citi imediat după acesta un număr întreg x şi se va efectua operaţia push x. Dacă k are valoarea 2 se va efectua operaţia pop.

Date de ieșire
Se va afișa pe ecran șirul de numere obținut în urma aplicării operațiilor date asupra șirului inițial. Pe prima linie se va afișa numărul t, reprezentând numărul de elemente ale noului șir, iar pe cea de a doua linie se vor afișa cele t elementele ale șirului, separate prin spații.

Restricții şi precizări
n și m sunt numere naturale cuprinse în intervalul [1, 10 000].
Fiecare element din șir este cuprins în intervalul [-2 000 000 000, +2 000 000 000].
k va avea întotdeauna valoarea 1 sau 2.
x are valori cuprinse în intervalul [-2 000 000 000, +2 000 000 000].
Nu vor fi operatii de tipul 2 cand stiva e goala.
Exemplu
Date de intrare
7
5 -4 0 -7 7 7 2
5
2
1 100
2
1 0
1 3
Date de iesire
8
5 -4 0 -7 7 7 0 3

Răspunsuri la întrebare

Răspuns de GAGA135
0

Răspuns:

#include <iostream>

using namespace std;

int main() {

   

   const int NUM = 100001;

   int n, m, x, k, v[NUM];

   cin >> n;

   int lsir = n;

   for (int i = 1; i <= lsir; ++i) {

       cin >> v[i];

   }

   cin >> m;

   for (int j = 1; j <= m; ++j) {

       cin >> k;

       if (k == 1) {

           cin >> x;

           lsir++;

           v[lsir] = x;

       }

       if (k == 2) {

           lsir--;

       }

   }

   cout << lsir << endl;

   for (int i = 1; i <= lsir; ++i) {

       cout << v[i] << ' ';

   }

   return 0;

}

Alte întrebări interesante