선형 조사 해시 테이블


답안 제출

Points: 1
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

크기가 \(M\)인 해시 테이블에 \(N\)개의 데이터를 저장하려고 한다. 데이터 \(x\)의 최초 해시 주소는 다음과 같다.

\(h(x)=x\bmod M\)

어떤 위치에 이미 데이터가 저장되어 있다면 선형 조사를 사용한다. \(i\)번째로 확인할 위치 \(h_i(x)\)는 다음과 같다.

\(h_i(x)=(h(x)+i)\bmod M\) \((i=0,1,2,\dots)\)

즉, 최초 해시 주소부터 인덱스를 하나씩 증가시키며 처음 발견한 빈 위치에 데이터를 저장한다. 마지막 인덱스 다음에는 0번 인덱스를 확인한다.

모든 데이터를 저장한 뒤 \(K\)개의 인덱스가 주어진다. 각 인덱스에 저장된 데이터를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 데이터의 개수 \(N\), 해시 테이블의 크기 \(M\), 확인할 인덱스의 개수 \(K\)가 공백으로 구분되어 주어진다.

둘째 줄에 저장할 \(N\)개의 정수가 입력 순서대로 주어진다.

셋째 줄에 확인할 \(K\)개의 인덱스가 주어진다.

출력

각 인덱스에 저장된 데이터를 주어진 순서대로 공백으로 구분하여 출력한다. 해당 인덱스가 비어 있다면 0을 출력한다.

제한 사항

  • \(1 \le N \le M \le 1,000\)
  • \(1 \le K \le 10\)
  • \(1 \le x_i \le 2^{31}-1\)
  • 확인할 인덱스는 \(0\) 이상 \(M-1\) 이하이다.

예제 입력 1

5 7 4
6 13 1 8 15
0 2 4 6

예제 출력 1

13 8 0 6

코멘트

현재 작성된 코멘트가 없습니다.