페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB
일부 사람들은 PO에 개인 성적을 바탕으로 최고의 학교를 선정하는 팀 대회가 있어야 한다고 생각한다. 그러면 당연히 이 우승 학교를 어떻게 선정할 것인지에 대한 의문이 생긴다. PO에 참가자가 명 있고, 문제들이 충분히 변별력이 있어서 같은 성적을 받은 참가자가 없다고 가정하면, 결과는 개의 문자로 이루어진 문자열로 나타낼 수 있다. 각 문자는 학교 하나를 나타내며, 첫 문자는 우승자의 학교, 다음 문자는 두 번째 순위 참가자의 학교를 나타내는 식으로 정렬된다. (이 문제에서는 최대 26개의 학교가 참가한다고 가정하므로 문자 A-Z이면 충분하다.)
우승 학교를 선정할 수 있는 한 가지 방법은 각 학교에서 성적이 가장 좋은 K명 학생의 순위 번호를 합산하고, 그 합이 가장 작은 학교를 선택하는 것이다. (학생이 K명보다 적은 학교는 당연히 고려하지 않는다.) 이 방식의 문제점은 예제로 가장 잘 설명할 수 있다. 결과가 AABCBBCCDDDA이고 라고 가정하자. 그러면 B는 순위 합 로 우승하고, A는 를 얻는다. 하지만 대신 A를 다른 각 팀과 직접 비교하면서 순위 번호를 계산할 때 나머지 팀의 참가자들을 제외하면, A는 그러한 모든 대결에서 대 로 승리한다. B 팀의 순위에는 A의 모든 참가자가 영향을 줄 수 있으며, 처음 명만 영향을 주는 것이 아님에 유의하라.
다른 모든 팀을 상대로 한 이러한 가상의 대결에서 모두 승리하는 팀을 흔히 Condorcet 우승자라고 하며, 그러한 팀이 존재하더라도 첫 번째 방법이 항상 Condorcet 우승자를 선정하지는 않는다는 사실은 이 방법이 Condorcet 기준을 충족하지 않는다고 표현할 수 있다. 놀랄 것도 없이 이러한 용어는 프로그래밍 대회 결과보다 정치적 선거 제도에 더 자주 사용된다.
결과 목록과 수 가 주어졌을 때, 학교들 중 Condorcet 우승자가 존재하는지 판별하는 프로그램을 작성하라.
첫째 줄에 전체 참가자 수와 각 학교에서 계산에 포함할 참가자 수를 나타내는 두 정수 와 가 주어진다. ( 및 ) 그다음 줄에는 A--Z 중에서 선택된 개의 문자가 주어진다. 참가자가 명보다 적은 학교는 모든 대결에서 자동으로 패배한다는 점에 유의하라.
Condorcet 우승자인 학교를 나타내는 문자를 한 줄에 출력하거나, Condorcet 우승자가 없으면 문자열 ``Ingen''을 출력한다.
12 3
FKGHGFHHGFFG
G
15 2
PAUHABPUOEXVBOH
Ingen
Programmeringsolympiaden
로그인 상태를 확인하는 중입니다.