아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

대학 입학 시험

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

요약
학생의 점수, 출신 지역, 희망 프로그램 목록과 프로그램 정원이 주어질 때, 지역 우선 규칙과 공정성 규칙에 따라 학생을 프로그램에 배정한다.
난이도

어려움10점 중 8점

유형
구현, 그리디, 정렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

매년 수많은 고교 졸업생이 하나의 중앙집중식 국가 시험을 통해 제한된 대학 정원을 두고 경쟁한다. 이 시험은 교육평가기관(EEO)이 주관한다. 시험이 끝나면 지원 자격을 갖춘 각 지원자는 들어가고 싶은 학과-전공-대학(FDU) 프로그램들을 선호하는 순서대로 나열한 지망 목록을 제출한다. 평가기관은 각 지원자의 총점, 지망 목록, 그리고 아래 선발 규칙을 이용해 모든 FDU를 정원만큼 채운다. 선발의 한 가지 목표는 학생들이 출신 지역 근처의 대학에 진학하도록 유도해 기숙사 수요를 줄이는 것이다. 합격한 지원자는 정확히 하나의 FDU에만 배정되며, 자신의 목록에 있는 어떤 FDU에도 배정되지 못한 지원자는 불합격이다.

학생 NN명 S1,…,SNS_1, \dots, S_N과 프로그램 MM개 F1,…,FMF_1, \dots, F_M이 주어진다. 각 학생은 총점, 출신 지역(고등학교 졸업장을 받은 지역), 그리고 지원하고 싶은 프로그램들의 지망 목록을 가진다. 각 프로그램은 소재 지역(대학이 위치한 지역)과 그 해의 정원을 가진다.

아래 두 규칙을 모두 만족하도록 학생들을 프로그램에 배정하라.

  1. 지역 학생 규칙. 두 학생 AA와 BB가 모두 지역 RR에 있는 프로그램 FF를 지망했고 score(A)>score(B)\mathrm{score}(A) > \mathrm{score}(B)라고 하자. 만약 BB가 FF에 대해 지역 학생이고(출신 지역이 RR), AA는 비지역 학생이며(출신 지역이 RR이 아님), score(B)>0.7⋅score(A)\mathrm{score}(B) > 0.7 \cdot \mathrm{score}(A)이면 FF에 대해 BB가 AA보다 우선한다. 그 밖의 모든 경우에는 AA가 BB보다 우선한다.
  2. 공정성 규칙. 합격한 각 학생은 자신의 지망 목록에서 실제로 들어갈 수 있는 가장 앞선 프로그램에 배정된다.

모든 점수는 서로 다른 정수이다.

입력

첫 줄에 테스트 케이스의 수 tt (1≤t≤101 \le t \le 10)가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.

첫 줄에 두 정수 NN (1≤N≤1501 \le N \le 150)과 MM (1≤M≤501 \le M \le 50)이 주어진다.

이어지는 NN개의 줄에는 각 학생 SiS_i의 정보가 Ri  Mi  K  Fi1  …  FiKR_i \; M_i \; K \; F_{i1} \; \dots \; F_{iK} 형식으로 주어진다. 여기서 RiR_i는 학생의 출신 지역 번호, MiM_i는 시험 점수, KK (0≤K≤M0 \le K \le M)는 지망 목록의 길이이며, Fi1,…,FiKF_{i1}, \dots, F_{iK}는 선호 순서대로 나열한 프로그램 번호이다.

그 다음 MM개의 줄에는 각 프로그램 FjF_j의 정보가 두 정수 RjR_j와 CjC_j로 주어지며, 각각 FjF_j의 지역 번호와 정원을 의미한다.

지역 번호는 임의의 정수이다.

출력

각 테스트 케이스에 대해 입력 순서대로 학생마다 한 줄씩, 총 NN개의 줄을 출력한다. ii번째 줄에는 학생 SiS_i가 프로그램 FjF_j에 합격했다면 jj를, 목록의 어떤 프로그램에도 합격하지 못했다면 not accepted를 출력한다.

연속한 테스트 케이스의 출력 사이에는 정확히 한 개의 빈 줄을 넣는다.

예제3

  1. 예제 1

    입력
    1
    9 2
    1 100 2 1 2
    2 80 2 2 1
    1 90 1 1
    2 40 1 2
    2 50 1 1
    1 60 1 2
    2 75 1 1
    1 95 1 1
    2 30 1 2
    1 3
    2 4
    
    예상 출력
    1
    2
    1
    2
    not accepted
    2
    not accepted
    1
    2
    
  2. 예제 2

    입력
    1
    2 1
    2 100 1 1
    1 80 1 1
    1 1
    
    예상 출력
    not accepted
    1
    
  3. 예제 3

    입력
    2
    1 1
    3 42 1 1
    3 1
    1 1
    3 42 1 1
    3 0
    
    예상 출력
    1
    
    not accepted