题目描述
KOI 山上共有 N 个休息站,编号为 1 到 N,以及连接这些休息站的 N−1 条双向步道。
对于每个整数 i(1≤i≤N),休息站 i 的拥挤程度用正整数 Ai 表示。
对于每个整数 j(1≤j≤N−1),第 j 条步道连接休息站 j 与休息站 Cj(j+1≤Cj≤N),其长度为 Lj。也就是说,所有休息站通过这些步道连接成一棵树。
孤独的徒步者教俊打算选择两个不同的休息站,并沿着这两个休息站之间唯一的简单路径散步。
对于选定的一条路径,定义:
- S 为该路径所包含的所有步道的长度之和;
- M 为该路径所包含的所有休息站的拥挤程度的最大值。
教俊既希望尽可能延长散步距离,又希望在人少的地方独自享受散步,因此将这条路径的满意度定义为 S−M。
请编写一个程序,求出教俊应当选择哪两个休息站,才能使散步路径的满意度最大。
输入格式
第一行输入一个整数 N。
第二行输入 N 个整数 A1,A2,…,AN,整数之间以空格分隔。
第三行输入 N−1 个整数 C1,C2,…,CN−1,整数之间以空格分隔。
第四行输入 N−1 个整数 L1,L2,…,LN−1,整数之间以空格分隔。
输出格式
第一行输出两个不同的休息站编号,编号之间以空格分隔,使得这两个休息站之间路径的满意度最大。
如果存在多种可行的输出,输出其中任意一种均可。
2
1 2
2
1
1 2
4
6 10 20 1
2 4 4
3 21 15
1 3
提示
样例说明 1
休息站 1 与休息站 2 之间路径的满意度为 −1,且该值为所有路径满意度中的最大值。
样例说明 2
所有可能路径的满意度如下:
- 路径 1−2 的满意度为 3−max{6,10}=3−10=−7。
- 路径 1−2−4−3 的满意度为 (3+21+15)−max{6,10,20,1}=39−20=19。
- 路径 1−2−4 的满意度为 (3+21)−max{6,10,1}=24−10=14。
- 路径 2−4−3 的满意度为 (21+15)−max{10,20,1}=36−20=16。
- 路径 2−4 的满意度为 21−max{10,1}=21−10=11。
- 路径 3−4 的满意度为 15−max{20,1}=15−20=−5。
限制条件
- 输入中给出的所有数均为整数。
- 2≤N≤300000。
- 对于每个整数 i(1≤i≤N),均有 1≤Ai≤1018。
- 对于每个整数 j(1≤j≤N−1),均有 j+1≤Cj≤N 且 1≤Lj≤1012。
子任务
- (8 分)N≤300。
- (12 分)N≤7500。
- (11 分)A1=A2=⋯=AN。
- (15 分)对于每个整数 j(1≤j≤N−1),均有 Cj=j+1。
- (17 分)C1=C2=⋯=CN−1=N。
- (36 分)集合 {A1,A2,…,AN} 中不同整数的数量不超过 20。
- (51 分)无附加限制。
翻译由 ChatGPT-5.6 完成