만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

선거

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

요약
최대 5명의 후보와 20개의 선호 그룹에 대해 매 라운드 최소 득표자를 제거하는 즉시 결선 투표를 시뮬레이션한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 구현, 배열
정답자
아직 제출이 없습니다

문제

MM명으로 이루어진 유권자 집단의 투표 선호도가 주어질 때, 11번부터 NN번까지 번호가 매겨진 NN명의 후보 중에서 선거의 당선자를 결정하라. 이 문제에서 MM명의 유권자는 GG개의 "그룹"으로 나뉘며, 같은 그룹에 속한 유권자들은 모두 동일한 투표 선호도를 가진다. 각 그룹의 선호도는 가장 선호하는 후보부터 가장 선호하지 않는 후보까지 순서대로 나열하여 주어진다. 선거 결과는 즉석 결선투표(instant-runoff voting) 방식으로 결정된다.

이 방식에서는 먼저 모든 유권자가 현재 가장 선호하는 후보(1순위)를 집계하여, 득표가 가장 적은 후보를 탈락시킨다. 득표수가 같아 동점이 발생하면, 그중 번호가 가장 큰 후보를 탈락시킨다. 그런 다음 탈락한 후보를 모든 유권자의 선호 목록에서 제거하고, 다시 득표가 가장 적은 후보를 탈락시킨다. 이 과정을 후보가 한 명만 남을 때까지 반복하며, 마지막에 남은 후보가 당선자이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 두 정수 GG와 NN이 주어진다 (2≤N≤52 \le N \le 5, 1≤G≤201 \le G \le 20). 이어지는 GG개의 줄은 각각 Mi ai1 ai2 … aiNM_i\ a_{i1}\ a_{i2}\ \dots\ a_{iN} 형식이며, 1≤Mi≤201 \le M_i \le 20이고 ai1,…,aiNa_{i1}, \dots, a_{iN}은 정수 1,…,N1, \dots, N의 순열이다. MiM_i는 ii번째 그룹에 속한 유권자 수이고, ai1,…,aiNa_{i1}, \dots, a_{iN}은 그 그룹이 가장 선호하는 후보부터 가장 선호하지 않는 후보까지의 순서이다. 입력의 끝은 G=N=0G = N = 0인 테스트 케이스로 표시되며, 이 케이스는 처리하지 않는다.

출력

각 테스트 케이스에 대해 선거의 당선자를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    3 4
    10 1 4 2 3
    15 3 2 1 4
    12 4 3 2 1
    3 2
    10 1 2
    10 1 2
    20 2 1
    0 0
    
    예상 출력
    4
    1