메모리 할당 명령을 순서대로 실행하는 프로그램을 작성하시오.
메모리는 100,000개의 연속된 칸으로 이루어져 있고, 주소는 1부터 100,000까지이다. 처음에는 모든 칸이 비어 있다.
명령은 다음 세 가지 중 하나이다.
var=malloc(size);
size의 연속 구간을 찾는다. 찾으면 그 구간을 할당하고 시작 주소를 var에 저장한다. 그런 구간이 없으면 0을 저장한다. (100 ≤ size ≤ 100,000)var에 이미 다른 주소가 들어 있어도, 기존 할당은 자동으로 해제되지 않는다.free(var);
var가 이전에 성공한 malloc의 시작 주소를 저장하고 있다면, 그 할당 구간을 해제하고 var에 0을 저장한다. var가 이미 0이면 아무 일도 일어나지 않는다.print(var);
var에 저장된 값을 출력한다.모든 명령은 세미콜론(;)으로 끝난다. 변수 이름은 알파벳 소문자 네 글자이다. 서로 다른 변수는 최대 1,000개이며, 모든 변수의 초깃값은 0이다.
첫째 줄에 명령의 개수 N이 주어진다. (1 ≤ N ≤ 100,000)
다음 N개의 줄에는 실행할 명령이 순서대로 한 줄에 하나씩 주어진다.
print 명령은 한 번 이상 주어진다.
print 명령이 실행될 때마다 결과를 한 줄에 하나씩 출력한다.