9662 - 城堡

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

在一个国家里,有 n 个城市(编号为 0n-1)。这些城市之间有 n 条双向道路相连(编号为 0n-1),其中编号为 i 的道路连接了城市 i 和城市 r_i(一条道路可以连接一个城市和它自身),长度为 d_in 个城市中有 m 个拥有自己城堡,可以抵御敌人侵略。如果没有城堡的城市遭受攻击,则离它最近的城堡将派兵前往救援。

你的任务是在不超过 k 个没有城堡的城市中建立城堡,使得所有城市中“离最近城堡的距离”的最大值尽量小。换句话说,若令 dist(c) 表示城市 c 的最近城堡离它的距离,则你的任务是让 \max{dist(c)} 尽量小。

输入数据保证存在方案使得对于每个城市,至少有一个城堡能够到达。

输入

输入第一行为三个正整数 n, m, k。第二行包含 n 个整数 $r_0,r1,\ldots,r{n-1}。第三行包含 n 个整数 d_0,d1,\ldots,d{n-1}。第四行包含 m 个各不相同的 0n-1 之间的整数,分别为 m$ 个城堡所在的城市编号。

输出

输出仅一行,包含一个整数,即 \max{dist(c)} 的最小值。

样例

输入

5 0 1
1 2 3 4 0
1 1 1 1 1

输出

2

输入

3 1 1
1 2 0
1 2 3
2

输出

1

输入

2 1 1  
0 1  
1 1  
1

输出

0

提示

输入 #4

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

输出 #4

3

输入输出样例 #5

输入 #5

2 0 1
1 0
5 10

输出 #5

5

说明/提示

100\% 的数据满足: 2\leq n\leq 501\leq d_i\leq 10^60\leq m\leq n-k

来源

四川省选