문제

문제 2064

메모리 관리2

시간 제한 1.000초 메모리 제한 128MB

문제 설명

페이지를 관리하는 가상의 주소는 페이지 번호와 페이지 내부의 위치를 알려주는 오프셋으로 이루어져 있다.
예를 들어 페이지의 크기가 4바이트이고, 페이지가 3개인 프로세스가 있다고 생각해보자.

각 페이지에는 4개의 저장 공간이 있으며 각 저장공간의 위치를 가르키는 오프셋 0,1,2,3이 있다.
가상의 주소는 페이지 번호와 오프셋이 합쳐져 만들어진다.
다음은 이를 그림으로 표현한 것이다.

페이징에선 이렇게 주어진 가상 주소와 페이지 테이블을 활용하여 물리주소를 생성한다.
이 때 생성하는 물리 주소는 페이지 번호 대신 프레임번호로 대체되어 생성된다.

페이지 수와 페이지 크기, 페이지 테이블이 주어졌을 때
입력되는 가상주소의 실제 물리주소를 출력하시오.

입력 설명

1번째 줄에 페이지의 수(N)과 페이지의 크기(K), 입력되는 가상주소의 개수(M)이 입력된다.
\((1 \le N \le 10000 , 1 \le K \le 4096, 1 \le M \le N*K)\)
2번째 줄부터 N줄에 걸쳐 페이지 테이블이 입력된다.
N+2번째 줄부터 M줄에 걸쳐 가상 주소(ADR)가 16진수로 입력된다.
\((0 \le ADR \le N*K)\)

출력 설명

M줄에 걸쳐 가상주소를 물리주소로 변환한 주소값이 출력된다.

입력 예시

3 4 4
0 3
1 1
2 7
0
1
A
7

출력 예시

C
D
1E
7

출처

자료구조