qcjj的蝴蝶结2
题号:NC220385
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

众所周知,qcjj是一个可爱的小姐姐,而可爱的小姐姐都喜欢蝴蝶结。
qcjj有n种不同颜色的蝴蝶结,每种颜色有A[i]个,A[i]>0。
有一天晚上直播的时候qcjj突发奇想,要是我能够把自己的所有的蝴蝶结都变成一个颜色就好了。
但是qcjj很爱惜自己的蝴蝶结,不愿意扔掉旧的蝴蝶结,所以动手能力超强的她决定自己对蝴蝶结进行染色。她发现,要将不同的颜色的蝴蝶结染不同的颜色需要用的颜料不同,例如:把黄色蝴蝶结染成绿色和把白色蝴蝶结染成绿色需要的颜料不同,把黄色蝴蝶结染成绿色和把黄色蝴蝶结染成黑色用的颜料也不同。
现在已知道了一些颜料的价格,且每一份颜料只能染一个蝴蝶结。qcjj想知道:
自己最少花多少钱就可以把所有的蝴蝶结都变成一个颜色。
(因为有的颜色可能染不出来,所以qcjj有可能无法让每个颜色蝴蝶结颜色一样。)

输入描述:

第一行读入一个T,表示T组数据。
对于每组数据,第一行输入一个n,表示有n种不同颜色的蝴蝶结;
第二行读入n个数字,为每个颜色蝴蝶结的个数。
第三行读入一个数字m,表示已知的颜料个数。
接下来的m行每行三个用空格隔开的数字i,j,k,表示将买一个将第i种颜色的蝴蝶结染成j种颜色的颜料需要花费k元。


输出描述:

对于每一组数据输出一行,里面有一个整数,表示qcjj 自己最少花多少钱就可以把所有的蝴蝶结都变成一个颜色。
如果不存在可行方案,即无论花多少钱都不满足 qcjj 的意愿,请输出:“qcjj yyds” 来安慰她,不包括引号。
示例1

输入

复制
2
2
1 1
2
1 2 1
2 1 2
2
1 1
0

输出

复制
1
qcjj yyds

说明

n \leq 100,题目保证所有输入都在int范围,保证不会有两个价格不一样但是功能一样的颜料。