인터넷 뉴스 매체가 워낙 많다 보니, 날씨를 예보할 때 어느 곳을 믿어야 할지 가려내기가 쉽지 않습니다. 가장 부정확한 매체를 걸러내기 위해, 뉴스 매체를 자동으로 채점하는 간단한 모형을 만들려고 합니다. 이 모형은 어떤 매체가 오늘의 날씨에 대해 지난 나흘 동안 각각 내놓은 예보를 입력으로 받아, 그 예보들이 여행객에게 영향을 줄 만한 나쁜 날씨를 제대로 경고했는지 판단합니다. 문제를 단순하게 하기 위해, 실제로 날씨가 문제를 일으킨 날만 다룹니다.
예보(forecast) 는 이전의 어느 날에 발표된, 오늘의 날씨를 가리키는 한 개 이상의 문장입니다. 각 문장에는 현상(phenomenon) 이 정확히 하나 있고, 수식어(qualifier) 는 없거나 하나 있습니다. 현상 자체는 좋음, 모호함, 나쁨 중 하나입니다.
| 좋음 | 모호함 | 나쁨 |
|---|---|---|
| sun | high | snow |
| sunny | highs | snow showers |
| clouds | low | flurries |
| cloudy | lows | hail |
| wind | rain | |
| winds | precipitation |
기본적으로 한 문장은 그 현상이 100% 확률로 일어난다고 말합니다. 수식어가 있으면 이 확률이 바뀝니다. 좋음 과 나쁨 현상에 대한 수식어와 그것이 뜻하는 확률은 다음과 같습니다.
| 수식어 | 확률 |
|---|---|
| mostly | 80% |
| some | 70% |
| possible | 50% |
모호함 현상에는 항상 수식어가 정확히 하나 있으며, 그 수식어는 숫자입니다. 이 숫자 값에 따라 모호한 현상이 실제로 좋은지 나쁜지가 결정됩니다. (숫자 수식어는 좋음/나쁨만 정하며, 확률은 100%로 유지됩니다.)
문장의 점수 는 그 현상의 확률이며, 현상이 좋으면 양수, 나쁘면 음수로 둡니다. 예보의 점수 는 그 예보에 속한 문장들의 점수 평균입니다.
예보는 대상이 되는 날이 가까워질수록 더 정확해지므로, 한 매체의 네 예보를 합칠 때 각 예보에 $\frac{1}{d+1}$ 의 가중치를 줍니다. 여기서 $d$ 는 그 예보가 며칠 전에 발표되었는지를 나타냅니다(어제 발표된 오늘 예보의 가중치는 $\frac{1}{2}$). 매체의 총점 은 이렇게 가중된 예보 점수들의 합입니다.
첫 줄에는 데이터 집합의 개수 $K$ 가 주어집니다. 이어서 $K$ 개의 데이터 집합이 오며, 각 집합은 정확히 네 줄로 이루어집니다. 한 데이터 집합에서 $i$ 번째 줄(1부터 셈)은 문제의 그 날보다 $i$ 일 전에 발표된 예보를 담습니다.
각 데이터 집합마다 먼저 "Data Set x:" 를 한 줄에 출력합니다. 여기서 x 는 그 집합의 번호(1부터)입니다. 다음 줄에는, 총점이 0.25 미만이면(매체가 나쁜 날씨를 옳게 예보했다는 뜻) "YES" 를, 그렇지 않으면 "NO" 를 출력합니다. 연속한 데이터 집합의 출력 사이에는 빈 줄을 하나 넣어 구분합니다.