해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
Mahmoud는 친구 Ehab에게 메시지를 보내려고 한다. 이들이 사용하는 언어는 1부터 n까지 번호가 매겨진 n개의 단어로 이루어져 있다. 일부 단어는 의미가 같으므로, 단어들은 k개의 그룹으로 나뉘며 각 그룹에 속한 모든 단어는 같은 의미를 가진다.
Mahmoud는 i-th번째 단어를 비용 ai로 보낼 수 있다는 것을 알고 있다. Mahmoud는 메시지의 각 단어를 같은 의미의 다른 단어로 바꾸거나 그대로 둘 수 있다. Mahmoud가 메시지를 보내는 데 드는 최소 비용을 구하도록 도와주자.
메시지를 보내는 비용은 메시지의 모든 단어를 보내는 비용의 합이다.
입력의 첫째 줄에는 정수 n, k, m (1 ≤ k ≤ n ≤ 105, 1 ≤ m ≤ 105)가 주어진다. 이는 각각 이들이 사용하는 언어의 단어 수, 단어 그룹의 수, Mahmoud의 메시지에 포함된 단어 수이다.
둘째 줄에는 단어를 나타내는 n개의 문자열이 주어진다. 각 문자열은 길이가 20 이하인 영문 소문자로 이루어져 있다. 모든 단어는 서로 다름이 보장된다.
셋째 줄에는 n개의 정수 a1, a2, ..., an (1 ≤ ai ≤ 109)이 주어진다. 여기서 ai는 i-th번째 단어를 보내는 비용이다.
다음 k개의 줄은 의미가 같은 단어들의 그룹을 설명한다. 다음 k개의 각 줄은 정수 x (1 ≤ x ≤ n)로 시작하며, 이는 이 그룹에 x개의 단어가 있음을 의미한다. 그 뒤에는 이 그룹에 속한 단어들의 인덱스를 나타내는 x개의 정수가 주어진다. 각 단어는 정확히 하나의 그룹에 속함이 보장된다.
다음 줄에는 Mahmoud의 메시지를 나타내는 공백으로 구분된 m개의 단어가 주어진다. 이 단어들은 각각 언어의 단어 목록에 등장한다.
유일한 줄에 일부 단어를 같은 의미의 다른 단어로 바꾼 뒤(하나도 바꾸지 않을 수도 있다) 메시지를 보내는 데 드는 최소 비용을 출력한다.
5 4 4
i loser am the second
100 20 1 5 10
1 1
1 3
2 2 5
1 4
i am the second
1165 4 4
i loser am the second
100 1 1 5 10
1 1
1 3
2 2 5
1 4
i am the second
107첫 번째 예제에서 Mahmoud는 "second"라는 단어를 "loser"라는 단어로 바꿔야 한다. 후자의 비용이 더 적기 때문에 총비용은 100+1+5+1=107이 된다.
두 번째 예제에서 Mahmoud는 어떤 단어도 바꾸지 않아야 하므로 총비용은 100+1+5+10=116이 된다.