유로컵 2000
시간 제한1초메모리 제한128 MB
일부 경기 결과가 주어진 축구 조별리그에서 남은 경기 최대 10개의 모든 결과를 고려해 각 팀이 받을 수 있는 최고 순위와 최저 순위를 구한다.
문제
유럽 축구 선수권 대회의 예선은 더블 라운드 로빈 방식으로 진행됩니다. 즉, 같은 조에 속한 모든 팀은 서로 두 번씩 경기를 치릅니다. 어느 한 조에는 독일이 터키, 핀란드, 몰도바, 북아일랜드와 함께 속해 있습니다. 이 조에서는 이미 14경기가 치러졌고, 아직 6경기가 남아 있습니다.
현재 순위표만 보면 북아일랜드는 이미 탈락한 것처럼 보일 수 있습니다. 하지만 그렇지 않습니다! 북아일랜드가 남은 세 경기를 모두 이기고, 독일이 터키와 비긴 뒤 핀란드에 지고, 몰도바가 터키를 이긴다고 가정해 봅시다. 그러면 북아일랜드가 1위가 됩니다!
승점 계산 방식은 다음과 같습니다. 각 경기에서 승리하면 3점, 무승부는 1점, 패배는 0점을 얻습니다. 모든 경기가 끝나면 팀들은 승점을 기준으로 순위를 매깁니다. 승점이 같을 경우에는 골 득실차(득점에서 실점을 뺀 값), 그다음 총 득점, 마지막으로 무작위 추첨 순으로 순위를 정합니다.
남은 경기들이 나올 수 있는 모든 경우를 고려하여, 대회가 모두 끝났을 때 각 팀이 조에서 받을 수 있는 가장 높은 순위와 가장 낮은 순위를 구하세요.
입력
입력은 하나 이상의 테스트 케이스로 이루어집니다. 각 테스트 케이스의 형식은 다음과 같습니다.
- 첫 번째 줄에는 조에 속한 팀의 수를 나타내는 정수 이 주어집니다.
- 다음 개의 줄에는 팀 이름이 한 줄에 하나씩 주어집니다. 각 이름은 길이가 30자 미만이며 공백을 포함하지 않습니다.
- 다음 줄에는 이미 치러진 경기의 수를 나타내는 정수 가 주어집니다.
- 이어지는 개의 줄에는 각각 치러진 경기 하나가
team1 team2 goals1 goals2형식으로 주어집니다. 이는 해당 경기에서team1이goals1골,team2가goals2골을 넣었음을 뜻합니다.
남은 경기는 최대 10경기이며, 모든 팀은 적어도 한 경기의 남은 경기를 가진다고 가정해도 됩니다(이 조건이 문제를 조금 단순하게 만들어 줍니다).
입력의 끝은 자리에 0만 있는 줄로 표시됩니다.
출력
각 테스트 케이스마다 먼저 Group #x 줄을 출력합니다. 여기서 는 테스트 케이스의 번호이며 1부터 시작합니다.
그다음에는 입력에 주어진 순서대로 각 팀에 대해 한 줄씩 출력합니다. 각 줄에는 팀 이름, 공백 한 칸, 그 팀의 가능한 가장 높은 순위, 빼기 기호 -, 그 팀의 가능한 가장 낮은 순위를 차례로 출력합니다.
서로 다른 테스트 케이스 사이에는 빈 줄을 하나 출력합니다.