각 경기에서 모든 드라이버의 순위가 주어질 때, 여러 점수 체계별로 총점을 계산해 우승자를 구하고 동점이면 공동 우승자를 모두 출력한다.
쉬움3구현배열정렬면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB포뮬러 1 시즌은 국제자동차연맹(FIA)이 주최하는 그랑프리라는 경주 여러 개로 이루어진다. 각 그랑프리에서는 결승선을 통과한 순위에 따라 드라이버에게 점수를 준다. 시즌이 끝나면 점수 합계가 가장 많은 드라이버가 월드 드라이버 챔피언이 된다.
주최 측은 경쟁을 더 치열하게 만들려고 규칙을 자주 바꾼다. 2010년 시즌에 바뀐 규칙 하나가 그랑프리마다 점수를 나누는 방식이다. 2003년부터는 상위 8명이 다음 표대로 점수를 받았다.
| 순위 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 점수 | 10 | 8 | 6 | 5 | 4 | 3 | 2 | 1 |
즉 우승자는 10점, 2위는 8점을 받고, 나머지도 같은 방식이다.
2010년 시즌부터는 상위 10명이 다음 표대로 점수를 받는다.
| 순위 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 점수 | 25 | 18 | 15 | 12 | 10 | 8 | 6 | 4 | 2 | 1 |
배점이 바뀌자 지난 시즌에 새 배점을 적용했다면 챔피언이 달라졌을지를 두고 말이 많아졌다. 예를 들어 2008년 Lewis Hamilton과 Felipe Massa의 최종 점수 차이는 1점뿐이었는데, 새 배점에서도 Hamilton이 챔피언이었을까? FIA는 이 논쟁을 정리하려고, 한 시즌의 모든 경주 결과와 여러 배점 방식이 주어졌을 때 배점 방식마다 월드 드라이버 챔피언을 구하는 프로그램을 준비하기로 했다.
입력은 여러 개의 테스트 케이스로 이루어진다.
각 테스트 케이스의 첫 줄에는 그랑프리 수 G (1≤G≤100)와 드라이버 수 P (1≤P≤100)가 공백으로 구분되어 주어진다. 드라이버는 1부터 P까지의 정수로 구분한다. 이어지는 G개의 줄은 각 경주의 결과이고, 한 줄에 P개의 정수가 공백으로 구분되어 주어진다. 한 줄의 i번째 수는 그 경주에서 드라이버 i가 들어온 순위이다.
그다음 줄에는 배점 방식의 개수 S (1≤S≤10)가 주어진다. 이어지는 S개의 줄에는 배점 방식 하나씩이 주어진다. 각 줄은 점수를 받는 마지막 순위 K (1≤K≤P)로 시작하고, 그다음에 K개의 정수 k1,k2,…,kK (1≤ki≤100)가 공백으로 구분되어 주어진다. 첫 번째 정수는 1위가 받는 점수, 두 번째 정수는 2위가 받는 점수이고, 나머지도 같은 방식이다. K위보다 낮은 순위로 들어온 드라이버는 점수를 받지 않는다.
마지막 테스트 케이스 다음 줄에는 0 두 개가 공백으로 구분되어 주어진다.
입력에 주어진 배점 방식마다 한 줄에 월드 드라이버 챔피언의 번호를 출력한다.
챔피언이 두 명 이상이면, 즉 점수가 같아 공동 챔피언이 되면 그 줄에 모든 챔피언의 번호를 오름차순으로 공백 하나씩 구분해 출력한다.