날씨 예보 신뢰도 평가

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

인터넷 뉴스 매체가 워낙 많다 보니, 날씨를 예보할 때 어느 곳을 믿어야 할지 가려내기가 쉽지 않습니다. 가장 부정확한 매체를 걸러내기 위해, 뉴스 매체를 자동으로 채점하는 간단한 모형을 만들려고 합니다. 이 모형은 어떤 매체가 오늘의 날씨에 대해 지난 나흘 동안 각각 내놓은 예보를 입력으로 받아, 그 예보들이 여행객에게 영향을 줄 만한 나쁜 날씨를 제대로 경고했는지 판단합니다. 문제를 단순하게 하기 위해, 실제로 날씨가 문제를 일으킨 날만 다룹니다.

예보(forecast) 는 이전의 어느 날에 발표된, 오늘의 날씨를 가리키는 한 개 이상의 문장입니다. 각 문장에는 현상(phenomenon) 이 정확히 하나 있고, 수식어(qualifier) 는 없거나 하나 있습니다. 현상 자체는 좋음, 모호함, 나쁨 중 하나입니다.

좋음모호함나쁨
sunhighsnow
sunnyhighssnow showers
cloudslowflurries
cloudylowshail
windrain
windsprecipitation

기본적으로 한 문장은 그 현상이 100% 확률로 일어난다고 말합니다. 수식어가 있으면 이 확률이 바뀝니다. 좋음나쁨 현상에 대한 수식어와 그것이 뜻하는 확률은 다음과 같습니다.

수식어확률
mostly80%
some70%
possible50%

모호함 현상에는 항상 수식어가 정확히 하나 있으며, 그 수식어는 숫자입니다. 이 숫자 값에 따라 모호한 현상이 실제로 좋은지 나쁜지가 결정됩니다. (숫자 수식어는 좋음/나쁨만 정하며, 확률은 100%로 유지됩니다.)

  • high(s)low(s) 의 수식어는 두 가지 형태를 가집니다. 하나는 0 이상 80 이하의 정수이고, 다른 하나는 'upper', 'lower', 'mid' 중 한 범위 단어 뒤에 10도 단위로 반올림한 정수가 오는 형태입니다(예: "upper 40s"). high 는 기온이 60 이상이면 좋고, low 는 기온이 50 이상이면 좋습니다.
  • wind(s) 의 수식어는 한 가지 형태뿐입니다. 두 정수를 "to" 와 "mph" 로 이은 것입니다(예: "5 to 10 mph"). 두 번째 정수가 25 이상이면 그 현상은 나쁨이고, 그렇지 않으면 좋음입니다.

문장의 점수 는 그 현상의 확률이며, 현상이 좋으면 양수, 나쁘면 음수로 둡니다. 예보의 점수 는 그 예보에 속한 문장들의 점수 평균입니다.

예보는 대상이 되는 날이 가까워질수록 더 정확해지므로, 한 매체의 네 예보를 합칠 때 각 예보에 $\frac{1}{d+1}$ 의 가중치를 줍니다. 여기서 $d$ 는 그 예보가 며칠 전에 발표되었는지를 나타냅니다(어제 발표된 오늘 예보의 가중치는 $\frac{1}{2}$). 매체의 총점 은 이렇게 가중된 예보 점수들의 합입니다.

입력

첫 줄에는 데이터 집합의 개수 $K$ 가 주어집니다. 이어서 $K$ 개의 데이터 집합이 오며, 각 집합은 정확히 네 줄로 이루어집니다. 한 데이터 집합에서 $i$ 번째 줄(1부터 셈)은 문제의 그 날보다 $i$ 일 전에 발표된 예보를 담습니다.

출력

각 데이터 집합마다 먼저 "Data Set x:" 를 한 줄에 출력합니다. 여기서 x 는 그 집합의 번호(1부터)입니다. 다음 줄에는, 총점이 0.25 미만이면(매체가 나쁜 날씨를 옳게 예보했다는 뜻) "YES" 를, 그렇지 않으면 "NO" 를 출력합니다. 연속한 데이터 집합의 출력 사이에는 빈 줄을 하나 넣어 구분합니다.