作物杂交是作物栽培中重要的一步。已知有N种作物(编号 1至N),第 i种作物从播种到成熟的时间为Ti 。
作物之间两两可以进行杂交,杂交时间取两种中时间较长的一方。如作物A种植时间为5天,作物B种植时间为7天,则A,B杂交花费的时间为7 天。
作物杂交会产生固定的作物,新产生的作物仍然属于N 种作物中的一种。
初始时,拥有其中M种作物的种子(数量无限,可以支持多次杂交)。同时可以进行多个杂交过程。
求问对于给定的目标种子,最少需要多少天能够得到。
如存在4种作物,各自的成熟时间为5天、7天、3天、8天。初始拥有A,B两种作物的种子,目标种子为D ,已知杂交情况为,A/B->C,A/C->D。
则最短的杂交过程为:
第1天到第7天(作物B 的时间),A/B->C。
第8天到第12 天(作物A 的时间),A/C->D。
花费12天得到作物D的种子。
输入的第1行包含4个整数N,M,K,T. N表示作物种类总数(编号1至N ),M 表示初始拥有的作物种子类型数量,K 表示可以杂交的方案数,T表示目标种子的编号。
第2行包含N 个整数,其中第i 个整数表示第i 种作物的种植时间Ti(1<=Ti<=100)。
第3行包含M 个整数,分别表示已拥有的种子类型Kj(1<=Kj<=M),Kj两两不同。
第4至K+3 行,每行包含3 个整数A,B,C ,表示第A 类作物和第B 类作物杂交可以获得第C类作物的种子。
输出一个整数,表示得到目标种子的最短杂交时间。
对于所有评测用例,1<=N<=2000, 2<=M<=N,1<=K<=100000,1<=T<=N, 保证目标种子一定可以通过杂交得到。输入描述中:第3行,第3行包含M 个整数,分别表示已拥有的种子类型Kj(1<=Kj<=M),Kj两两不同。个人认为应该是(1<=Kj<=N)。但原题是小于等于M。大家自己体会吧。