Witam
niesety na jutro jest mi potrzebny rozwiazanie takiego zagadnienia w c++
4184. Urząd Spraw Ważnych
Kod zadania: ASD08USW
Codziennie przed Urzędem Spraw Ważnych ustawia się kolejka petentów, z których każdy chce złożyć podanie. Co pewien czas pierwsza osoba z kolejki może wejść do urzędu i złożyć podanie. Osoba odbierająca podanie kładzie je na szczycie stosu podań. Od czasu do czasu z biura wyłania się kierownik, bierze jedno podanie ze stosu i rozpatruje je. Godziny czasu pracy są skrupulatnie przestrzegane, więc gdy nadchodzi pora, USW jest zamykany, niezależnie od stanu kolejki pod drzwiami. Zrezygnowani petenci rozchodzą się wówczas do domów (niektórzy z nich mogą próbować szczęścia później). Następnego dnia kolejka ustawia się od nowa (stan kolejki z poprzedniego dnia nie ma znaczenia). Należy napisać program, który określi, w jakiej kolejności będą rozpatrywane podania. W programie należy zaimplementować stos i kolejkę w oparciu o listy dynamiczne oraz poprawnie zarządzać pamięcią (zwalniać pamięć zajmowaną przez usuwane elementy itp.).
Uwaga: SPOJ sprawdza jedynie poprawność funkcjonalną zadania. Właściwej oceny dokona prowadzący projekt.
Wejście
Na wejściu zostanie podany ciąg zdarzeń. Zdarzeniami mogą być: przybycie petenta z podaniem (ustawia się on na końcu kolejki przed urzędem), wpuszczenie petenta do urzędu (wchodzi pierwszy petent z kolejki, odkłada swoje podanie na stos), rozpatrzenie podania (ze szczytu stosu) oraz zakończenie pracy urzędu (kolejka przed urzędem rozprasza się, nie zostawiając podań). Po zakończeniu pracy urzędu mogą wystąpić kolejne zdarzenia - odpowiada to rozpoczęciu nowego dnia pracy (z pustą kolejką przed urzędem). Podania są identyfikowane za pomocą liczb z przedziału 0, ..., 231-1. Zdarzenia opisane są w następujący sposób:
* + nr_podania - petent z podaniem nr_podania ustawia się na końcu kolejki
* - (znak minus) - petent z początku kolejki zostawia swoje podanie w urzędzie
* r - podanie ze szczytu stosu zostaje rozpatrzone
* x - zakończenie pracy urzędu
Kolejne zdarzenia są rozdzielone białymi znakami. Sytuacje \"nielogiczne\" (np. rozpatrzenie podania przy braku podań na stosie) nie wystąpią. Jeżeli w momencie zakończenia danych wejściowych na stosie pozostaną jakieś podania, nie będą one rozpatrzone.
Wyjście
Na wyjściu programu należy wypisać numery podań w kolejności ich rozpatrywania, rozdzielone spacją.
Przykład
Wejście:
+ 1
+ 2
+ 3
+ 4
-
-
x
r
r
+ 5
-
r
Wyjście:
2 1 5
Wejście:
+ 1
+ 2
+ 3
+ 4
+ 5
-
x
+ 6
+ 7
+ 8
x
+ 9
+ 10
x
+ 11
+ 12
r
x
Wyjście:
1
program musi byc w c++ z wlasna implemetnacja listy
jest mozliwosc otrzymania tego na jutro?
pozdrawiam