위험도 평가

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

문제

투자자가 어느 회사에 돈을 넣을지(예: 주식 매수) 정보에 근거해 판단하는 한 가지 방법은 독립적인 평가 보고서를 읽는 것이다. 여러 서비스가 이런 보고서를 작성하고 종목에 등급을 매긴다. 금융이 한창 과열되던 시절에는, 뚜렷한 사업 모델이 없는 회사조차도 대부분 건전한 투자처로 평가받았다고 한다. "고수익 유망주" 같은 한 문장이면 충분했고, 투자자들은 나그네쥐 떼처럼 그 뒤를 따랐다. 사실 컴퓨터 프로그램도 이 정도는 할 수 있을 것이다. 그리고 이제 당신이 바로 그 프로그램을 작성하게 된다.

프로그램은 회사 하나 이상에 대한 텍스트를 입력으로 받는다. 어떤 품질 단어들은 긍정적이거나 부정적인 어감을 가진다. 예를 들어 "trouble"은 부정적이고 "promising"은 긍정적이다. 이런 단어마다 기본 품질 점수가 주어진다.

문장에는 수식어 "not", "very", "extremely", "slightly"가 들어갈 수도 있다.

  • 한 문장 안에 "not"이 한 번이라도 나타나면, 그 문장에 있는 모든 품질 단어의 값이 $0$이 된다.
  • "very"는 그 문장에 있는 각 품질 단어의 값을 두 배로 만든다.
  • "extremely"는 각 품질 단어의 값을 세 배로 만든다.
  • "slightly"는 각 품질 단어의 값을 절반으로 만든다.

이 배수들은 곱셈으로 누적된다. 예를 들어 문장 "AIG very trouble extremely very."는("trouble"의 점수가 $-1$이라고 할 때) "AIG"에 $-12$점을 준다. $-1 \times 2 \times 3 \times 2 = -12$이기 때문이다. 수식어는 한 문장 안에서만 적용되며, 문장은 '.'로 끝난다(텍스트에는 ',', ';', ':' 등 다른 문장 부호가 없다).

하나의 텍스트가 여러 회사를 다룰 수 있다. 어떤 품질 단어가 어느 회사에 속하는지는 다음과 같이 정한다. 텍스트에서 한 회사 이름이 등장한 지점부터 다음 회사 이름이 등장하기 전까지(또는 텍스트 끝까지)의 모든 단어는 그 회사를 가리키는 것으로 본다. 첫 회사 이름보다 앞선 단어들은 어느 회사도 가리키지 않는다. 여러 회사가 같은 문장에 나올 수도 있다. 예를 들어 "AIG trouble Pixar promising very."는("trouble" $= -1$, "promising" $= +1$일 때) "AIG"에 $-2$점, "Pixar"에 $+2$점을 준다. "very"가 두 품질 단어 모두에 적용되기 때문이다(둘 다 같은 문장에 있다).

한 회사가 여러 문장(또는 여러 텍스트 덩어리)에 걸쳐 등장하면, 각 문장에서 얻은 점수를 모두 더한다.

입력

첫 줄에는 데이터 집합의 개수 $K$가 주어진다. 이어서 $K$개의 데이터 집합이 아래 형식으로 주어진다.

각 데이터 집합의 첫 줄에는 세 정수 $C$, $Q$, $L$이 주어진다. $1 \le C \le 100$은 회사의 수, $1 \le Q \le 100$은 품질 단어의 수, $1 \le L \le 1000$은 텍스트의 줄 수이다. 이어서 $C$개의 줄에 각각 회사 이름(글자, 하이픈 포함 가능)이 주어진다. 그다음 $Q$개의 줄이 오는데, 각 줄에는 품질 단어 $w_i$(역시 하이픈 포함 가능), 공백 한 칸, 그리고 실수 $q_i$(단어 $i$의 기본 품질 점수)가 순서대로 주어진다.

마지막으로 $L$개의 텍스트 줄이 주어진다. 각 줄은 최대 $80$자이다. 모든 문자는 대문자 또는 소문자, 하이픈(단어의 일부), '.', 또는 공백이다. 회사 이름은 대소문자가 정확히 일치할 때만 매칭된다 — "AIG"는 "aig"와 매칭되지 않는다. 품질 단어와 수식어는 대소문자와 무관하게 매칭된다 — "trouble"은 "tRoubLE"와, "Very"는 "veRY"와 매칭된다. 입력에서 서로 같은 품질 단어는 없으며, 어떤 회사 이름도 다른 회사 이름이나 품질 단어와 같지 않음이 보장된다.

출력

각 데이터 집합에 대해, 먼저 "Data Set x:"를 한 줄에 출력한다(x는 데이터 집합 번호). 그다음 $C$개 회사의 품질 점수를 소수점 아래 둘째 자리까지 반올림하여, 입력에서 회사 이름이 주어진 순서대로 한 줄에 하나씩 출력한다. 연속한 데이터 집합 사이는 빈 줄 하나로 구분한다.