시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 512 MB 0 0 0 0.000%

문제

Napišite program koji će simulirati izvršavanje naredbi za rezerviranje i oslobadanje memorije. Memorija računala je niz od 100 000 uzastopnih memorijskih lokacija, redom označenih adresama od 1 do 100 000. Na početku su sve lokacije slobodne. Naredbe koje se mogu pojaviti su:

  • var=malloc(s); Ova naredba pronalazi prvi niz od s uzastopnih slobodnih memorijskih lokacija i rezervira ih. Funkcija vraća adresu prve rezervirane lokacije. Ako ne postoji niz od s uzastopnih slobodnih memorijskih lokacija, onda funkcija ništa ne rezervira te vraća vrijednost 0.
  • free(var); Ova naredba oslobada memorijske lokacije dodijeljene varijabli var (prethodnim pozivom funkcije malloc) i postavlja vrijednost varijable var na 0. Ako je vrijednost varijable var već jednaka 0 prije poziva funkcije, onda funkcija ne radi ništa.
  • print(var); Ova naredba ispisuje vrijednost varijable var.

Svaka naredba završava znakom “;” (točkazarez). Varijable su nizovi sastavljeni od točno 4 mala slova engleske abecede. Sve varijable su na početku inicijalizirane na vrijednost 0.

입력

U prvom redu se nalazi cijeli broj n (1 ≤ n ≤ 100 000) – broj naredbi. U j-tom od sljedećih n redova se nalazi j-ta naredba, formatirana točno kao u tekstu zadatka bez viška praznih znakova. Ukupni broj različitih varijabli će biti manji ili jednak od 1000. Barem jedna od naredbi će biti naredba print. U svakoj naredbi malloc vrijedi 100 ≤ s ≤ 100 000.

출력

U j-ti red ispišite rezultat j-te po redu naredbe print.

예제 입력 1

3
mama=malloc(140);
tata=malloc(120);
print(tata);

예제 출력 1

141

예제 입력 2

5
aabb=malloc(50001);
bbaa=malloc(50000);
print(aabb);
free(aabb);
print(bbaa);

예제 출력 2

1
0