【题目描述】 Byte大陆上的王国由一些城市组成,还有一些公路,公路是双向通行的。在某些城市中有堡垒(共有C个),是国王的部队住所。 当一个城市受到攻击时,国王的军队就会从最近的堡垒从公路上赶来。狡猾的敌人每次会向距离最近的堡垒最远的城市攻击,这让国王大为烦恼。国王打算投资新增加K个堡垒,请你设计一个方案,在某些城市修建新堡垒,使得敌人攻击时,军队能最快到达,即受攻击的城市与最近的堡垒的距离尽可能小,并计算出这个最小距离值。 城市和道路的设计比较独特(见输入说明),N个城市有N个道路,甚至有连接自己城市的道路(参见样例2)。数据保证可以有设计方案,使得每个城市都可以通过公路连接到一个堡垒或它自身就有堡垒。 【输入格式】 第一行,三个整数 N K C。表示有N个城市,标号从0到N-1。新增加K个堡垒;已经在C个城市有堡垒。 第二行,N个整数,第i个整数road(i)表示:第i条公路是连接i城市和road(i)城市的。 第三行,N个整数,第i个整数distance(i)表示:第i条公路的长度。 第三行,C个不同的整数,第i个整数castle(i)表示:在castle(i)城市有堡垒。 【输出格式】 只一行,一个整数。可能的最小距离。
【输入输出样例】 输入 | | 10 3 3 0 2 0 0 2 2 8 3 8 7 10 9 1 8 1 3 7 2 8 1 3 4 6 | | | |
【数据范围】 30%数据 2 <= N <= 5 50%数据 2 <= N<= 20 100%数据2 <= N <= 50 1<= K <= N 0<= C <= N-K 1<=公路长度 <=10^6
|