Zadanie z programowania C++

Tytułami książek są liczby całkowite. Twoim zadaniem jest układanie książek na jednym stosie oraz zdejmowanie ich z niego. Zdejmujemy zawsze książkę leżącą na wierzchu stosu. Z pustego stosu nic nie zdejmujemy.

Napisz program, który wczyta liczbę poleceń N (mniejszą niż 1000) oraz zbiór tych poleceń. W kolejnych N wierszach znajdują się polecenia wstawienia książki na stos lub zdjęcia pewnej liczby książek ze stosu. Są zatem dwa typy poleceń. Jedno składa się z litery W, znaku spacji oraz liczby naturalnej będącej nazwą książki. Drugie polecenie składa się z litery P oraz liczby nieujemnej oznaczającej liczbę książek jaką należy zdjąć ze stosu.

Program powinien, dla każdego wystąpienia polecenia drugiego typu wypisać jeden wiersz. Wiersz ten powinien zawierać nazwy książek (liczby całkowite) rozdzielone znakiem spacji, wypisane w takiej kolejności w jakiej zostały zdjęte ze stosu. Ponieważ z pustego stosu nic nie można ściągnąć, więc w takiej sytuacji nic nie wypisujemy.

Przykładowe dane:

5

W 1

W 2

P 1

W 3

P 2


Wynik:

2

3 1

1

Odpowiedzi

Najlepsza Odpowiedź!
  • havk
  • Rozwiązujący
2009-11-22T16:10:44+01:00
#include<iostream>
#include<vector>
using namespace std;
int n,a;
char c;
vector<int> v;
int main(){
scanf("%d",&n);
for(int i=0;i<n;++i){
scanf(" %c%d",&c,&a);
if(c=='W')
v.push_back(a);
else{
for(int j=0;j<a;++j)
if(!v.empty()){
printf("%d ",*(v.end()-1));
v.pop_back();
}
printf("\n");
}
}
return 0;
}