#P17138. [KOI 2026 #1] 步道

    ID: 19481 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>Special Judge2026KOI(韩国)

[KOI 2026 #1] 步道

题目描述

KOI 山上共有 NN 个休息站,编号为 11NN,以及连接这些休息站的 N1N-1 条双向步道。

对于每个整数 ii1iN1 \le i \le N),休息站 ii 的拥挤程度用正整数 AiA_i 表示。

对于每个整数 jj1jN11 \le j \le N-1),第 jj 条步道连接休息站 jj 与休息站 CjC_jj+1CjNj+1 \le C_j \le N),其长度为 LjL_j。也就是说,所有休息站通过这些步道连接成一棵树。

孤独的徒步者教俊打算选择两个不同的休息站,并沿着这两个休息站之间唯一的简单路径散步。

对于选定的一条路径,定义:

  • SS 为该路径所包含的所有步道的长度之和;
  • MM 为该路径所包含的所有休息站的拥挤程度的最大值。

教俊既希望尽可能延长散步距离,又希望在人少的地方独自享受散步,因此将这条路径的满意度定义为 SMS-M

请编写一个程序,求出教俊应当选择哪两个休息站,才能使散步路径的满意度最大。

输入格式

第一行输入一个整数 NN

第二行输入 NN 个整数 A1,A2,,ANA_1,A_2,\ldots,A_N,整数之间以空格分隔。

第三行输入 N1N-1 个整数 C1,C2,,CN1C_1,C_2,\ldots,C_{N-1},整数之间以空格分隔。

第四行输入 N1N-1 个整数 L1,L2,,LN1L_1,L_2,\ldots,L_{N-1},整数之间以空格分隔。

输出格式

第一行输出两个不同的休息站编号,编号之间以空格分隔,使得这两个休息站之间路径的满意度最大。

如果存在多种可行的输出,输出其中任意一种均可。

2
1 2
2
1
1 2
4
6 10 20 1
2 4 4
3 21 15
1 3

提示

样例说明 1

休息站 11 与休息站 22 之间路径的满意度为 1-1,且该值为所有路径满意度中的最大值。

样例说明 2

所有可能路径的满意度如下:

  • 路径 121-2 的满意度为 3max{6,10}=310=73-\max\{6,10\}=3-10=-7
  • 路径 12431-2-4-3 的满意度为 (3+21+15)max{6,10,20,1}=3920=19(3+21+15)-\max\{6,10,20,1\}=39-20=19
  • 路径 1241-2-4 的满意度为 (3+21)max{6,10,1}=2410=14(3+21)-\max\{6,10,1\}=24-10=14
  • 路径 2432-4-3 的满意度为 (21+15)max{10,20,1}=3620=16(21+15)-\max\{10,20,1\}=36-20=16
  • 路径 242-4 的满意度为 21max{10,1}=2110=1121-\max\{10,1\}=21-10=11
  • 路径 343-4 的满意度为 15max{20,1}=1520=515-\max\{20,1\}=15-20=-5

限制条件

  • 输入中给出的所有数均为整数。
  • 2N3000002 \le N \le 300\,000
  • 对于每个整数 ii1iN1 \le i \le N),均有 1Ai10181 \le A_i \le 10^{18}
  • 对于每个整数 jj1jN11 \le j \le N-1),均有 j+1CjNj+1 \le C_j \le N1Lj10121 \le L_j \le 10^{12}

子任务

  1. 88 分)N300N \le 300
  2. 1212 分)N7500N \le 7\,500
  3. 1111 分)A1=A2==ANA_1=A_2=\cdots=A_N
  4. 1515 分)对于每个整数 jj1jN11 \le j \le N-1),均有 Cj=j+1C_j=j+1
  5. 1717 分)C1=C2==CN1=NC_1=C_2=\cdots=C_{N-1}=N
  6. 3636 分)集合 {A1,A2,,AN}\{A_1,A_2,\ldots,A_N\} 中不同整数的数量不超过 2020
  7. 5151 分)无附加限制。

翻译由 ChatGPT-5.6 完成