지역 및 하위 지역 프로그래밍 대회 자체의 순위를 매기는 상위 대회는 없습니다. 대회 전체를 서로 비교하기가 어렵기 때문입니다. 여기 한 가지 방법이 있습니다. 어떤 대회의 결과표가 "이상적인" 대회에서 얼마나 벗어났는지를 비이상도(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$을 더합니다.
불안정 $I_1, I_2, \dots, I_P$. 어떤 팀이 문제 $p$를 풀었다면, 그보다 위에 있는 모든 팀도 $p$를 풀어야 합니다. 문제 $p$에 대해 $p$를 푼 팀 중 가장 순위가 낮은 팀을 잡습니다. 그 팀보다 순위가 엄격하게 위인(순위 번호가 더 작은) 팀 중 $p$를 풀지 못한 팀마다 $I_p$에 $1/T$을 더합니다. 아무 팀도 $p$를 풀지 못했다면 $I_p = 0$입니다.
전체 비이상도는 다음과 같습니다. $$N = 1.03,V + 3.141,O + 2.171,E + 1.414,U + \frac{I_1 + I_2 + \dots + I_P}{P}.$$
주어진 결과표에 대해 모든 벌점과 전체 비이상도를 계산하는 프로그램을 작성하세요.
입력은 순수 ASCII로 된 대회 결과표입니다. 공백 문자는 스페이스뿐이며, 열은 최소 한 칸의 공백으로 구분됩니다.
-)만으로 이루어진 구분선이 옵니다.Team, 이어서 문제 글자들(대문자 A, B, … 를 알파벳 순서로), 그리고 =, Time, R이 있습니다.R — 가 있습니다.+ 또는 +k($k$는 정답 이전의 오답 횟수), 오답만 냈으면 -k, 시도하지 않았으면 . 입니다. 칸이 +로 시작할 때에 한해 그 팀이 문제를 푼 것으로 봅니다.문제는 최대 26개, 팀은 최대 300개입니다.
다음을 각각 한 줄씩 출력합니다.
Vainness = 다음에 $V$,Oversimplification = 다음에 $O$,Evenness = 다음에 $E$,Unsolvability = 다음에 $U$,Instability p = 다음에 $I_p$ ($p = 1, 2, \dots, P$),Negidealness = 다음에 $N$.모든 값은 소수점 아래 정확히 세 자리로 반올림하여 출력합니다. 어떤 값도 반올림 경계에 놓이지 않도록 테스트 데이터가 구성되어 있으므로, 세 자리로 올바르게 반올림하면 모두 동일한 문자열이 나옵니다.