시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
지역 및 하위 지역 프로그래밍 대회 자체의 순위를 매기는 상위 대회는 없습니다. 대회 전체를 서로 비교하기가 어렵기 때문입니다. 여기 한 가지 방법이 있습니다. 어떤 대회의 결과표가 "이상적인" 대회에서 얼마나 벗어났는지를 비이상도(negidealness) 라는 값으로 측정합니다. 이는 아래 벌점들의 가중합입니다. 이하에서 T는 참가 팀 수, P는 문제 수를 나타냅니다.
헛됨 V. 모든 팀은 적어도 한 문제를 풀어야 합니다. 한 문제도 풀지 못한 팀마다 1/T을 더합니다.
지나친 쉬움 O. 모든 문제를 다 푼 팀이 있어서는 안 됩니다. P개 문제를 모두 푼 팀마다 1/T을 더합니다.
고름 E. 푼 문제 수는 순위를 따라 내려가면서 완만하게 줄어들어야 합니다. 팀은 순위 순서로 나열되어 있습니다. 순위상 인접한 두 팀의 푼 문제 수 차이가 d>1이면 (d−1)/P을 더합니다. 즉 두 팀 사이에서 건너뛴 "푼 문제 수" 값 하나마다 1/P입니다. 예를 들어 한 팀이 5문제를 풀고 다음 팀이 1문제를 풀었다면 2, 3, 4가 건너뛰어졌으므로 3/P을 더합니다.
풀 수 없음 U. 모든 문제는 적어도 한 팀이 풀어야 합니다. 아무 팀도 풀지 못한 문제마다 1/P을 더합니다.
불안정 I1,I2,…,IP. 어떤 팀이 문제 p를 풀었다면, 그보다 위에 있는 모든 팀도 p를 풀어야 합니다. 문제 p에 대해 p를 푼 팀 중 가장 순위가 낮은 팀을 잡습니다. 그 팀보다 순위가 엄격하게 위인(순위 번호가 더 작은) 팀 중 p를 풀지 못한 팀마다 Ip에 1/T을 더합니다. 아무 팀도 p를 풀지 못했다면 Ip=0입니다.
전체 비이상도는 다음과 같습니다. N=1.03V+3.141O+2.171E+1.414U+PI1+I2+⋯+IP.
주어진 결과표에 대해 모든 벌점과 전체 비이상도를 계산하는 프로그램을 작성하세요.
입력은 순수 ASCII로 된 대회 결과표입니다. 공백 문자는 스페이스뿐이며, 열은 최소 한 칸의 공백으로 구분됩니다.
-)만으로 이루어진 구분선이 옵니다.Team, 이어서 문제 글자들(대문자 A, B, … 를 알파벳 순서로), 그리고 =, Time, R이 있습니다.R — 가 있습니다.+ 또는 +k(k는 정답 이전의 오답 횟수), 오답만 냈으면 -k, 시도하지 않았으면 . 입니다. 칸이 +로 시작할 때에 한해 그 팀이 문제를 푼 것으로 봅니다.문제는 최대 26개, 팀은 최대 300개입니다.
다음을 각각 한 줄씩 출력합니다.
Vainness = 다음에 V,Oversimplification = 다음에 O,Evenness = 다음에 E,Unsolvability = 다음에 U,Instability p = 다음에 Ip (p=1,2,…,P),Negidealness = 다음에 N.모든 값은 소수점 아래 정확히 세 자리로 반올림하여 출력합니다. 어떤 값도 반올림 경계에 놓이지 않도록 테스트 데이터가 구성되어 있으므로, 세 자리로 올바르게 반올림하면 모두 동일한 문자열이 나옵니다.