UOJ Logo Universal Online Judge

UOJ

#53. 【UR #4】追击圣诞老人

附件下载 统计

在元旦激光炮的轰炸下,圣诞老人终于招架不住仓皇而逃,元旦三侠立刻展开追击行动。

n 座城市,之间有 n1 条道路连接成一个树形结构。每个城市有一个停留时间 wi,只要圣诞老人来到 i 号城市就必须停留 wi 的时间休息一下。

圣诞老人的逃跑路线可以用长度 l 的序列 s1,s2,,sl 表示(l 是某个正整数),他会依次飞过 s1,s2,,sl 号城市然后飞向火星找楼主聊人生,耗费的时间为经过的城市的停留时间之和,即 i=1lwsi。(圣诞老人可能经过同一个城市多次)

由于元旦三侠身手敏捷,圣诞老人在城市 i 的时候下一步能飞到的城市是受限制的。对于每个城市 i 有三个整数参数 ai,bi,ci1ai,bi,cin)。从城市 i 出发能飞到城市 j 当且仅当下面三个条件中有至少一个成立

  • 从城市 ai 出发沿道路行走到城市 bi 必经过城市 j
  • 从城市 bi 出发沿道路行走到城市 ci 必经过城市 j
  • 从城市 ci 出发沿道路行走到城市 ai 必经过城市 j

所以圣诞老人的长度为 l 的逃跑路线 s 必须满足对于所有的 1i<l 能从 si 出发飞到 si+1

由于圣诞老人在和元旦三侠玩心理战,他会选择耗费时间前 k 小的逃跑路线之一(长度 l 不限)。请帮助元旦三侠找出耗费时间前 k 小的逃跑路线的耗费时间吧。

由于世界被圣诞老人毁灭得差不多了,元旦三侠手上的电脑只有 100MB内存。请节约使用内存。测评机是 64 位机,指针类型和 long 类型均为 8 个字节。

消灭圣诞老人!地球属于人类!

输入格式

第一行两个正整数 n,k

第二行 n 个整数,第 i 个整数表示 wi。保证 1wi108

第三行 n1 个整数,第 i 个整数即 pi+1 表示 i+1 号城市与 pi+1 号城市之间有道路连接。保证 1pi+1<i+1

接下来 n 行,第 i 行包含三个整数 ai,bi,ci。保证 1ai,bi,cin

输出格式

k 行,每行一个整数,第 i 行表示第 i 小的逃跑路线的耗费时间。

样例一

input

4 9
1 10 15 1000
1 2 2
2 2 4
2 2 3
1 3 4
3 3 4

output

1
10
11
15
16
20
21
25
25

样例二

见样例数据下载。这组样例满足 ai=bi

样例三

见样例数据下载。

限制与约定

测试点编号 n k
1, 2n=5k=10
3, 4n=100k=100
5, 6n=1000k=50000
7, 8n=1000k=105
9, 10n=15000k=105
11, 12n=20000k=105
13, 14n=105k=105
15, 16n=105k=5×105
17, 18n=5×105k=105
19, 20n=5×105k=5×105

对于所有编号为奇数的测试点,输入中所有 ai=bi

保证答案小于等于 108

时间限制:3s

空间限制:100MB

下载

样例数据下载