체이닝 해시 테이블


답안 제출

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

문제 유형

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

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

서로 다른 데이터의 해시 주소가 같은 충돌이 발생하면 체이닝 방식으로 처리한다. 같은 인덱스에 저장되는 데이터들은 하나의 리스트를 이루며, 나중에 입력된 데이터일수록 리스트의 앞에 놓인다.

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

입력

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

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

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

출력

확인할 인덱스마다 한 줄씩, 해당 인덱스의 리스트에 저장된 데이터를 앞에서부터 공백으로 구분하여 출력한다.

해당 인덱스에 저장된 데이터가 없다면 빈 줄을 출력한다.

제한 사항

  • \(1 \le N,M \le 1,000\)
  • \(1 \le K \le 10\)
  • \(1 \le x_i \le 2^{31}-1\)
  • 확인할 인덱스는 \(0\) 이상 \(M-1\) 이하이다.
  • 하나의 인덱스에 저장되는 데이터는 최대 10개이다.

예제 입력 1

7 5 3
1 6 11 4 9 2 7
1 3 4

예제 출력 1

11 6 1

9 4

코멘트

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