我是 A 题
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

众所周知,题目名称与题面没有任何关系。

你发现了一道 div2 的 A 题,下面是这道题的题面:

给定一张  个点, 条边的无向联通图和一个常数 ,每个点拥有点权 w_i,每条边拥有边权 val_i,现在他决定保留一些边,这样将剩余部分连通块,牛牛的目标是使得每个剩余的连通块的点权和都是  的倍数,同时最小化被保留的边的权值和。

输入描述:

第一行两个正整数 n,k

接下来一行 n 个正整数,第 i 个正整数表示节点 i 的权值是 w_i

接下来 n-1 行,每行 3 个正整数,表示一条连接 u,v 边权为 val_i  的边。

输出描述:

输出一行一个正整数最小的权值和。
示例1

输入

复制
5 2 
1 0 1 1 1
1 2 5
1 4 3
2 3 2
2 5 1

输出

复制
6

说明

选择 (1,4),(2,3),(2,5)
示例2

输入

复制
10 3 
1 3 4 2 1 6 2 3 5 6
1 2 2
1 4 1
2 3 3
2 6 3
2 10 2
5 6 4
5 7 4
6 8 3
6 9 1

输出

复制
12

说明

选择 (1,4),(2,3),(2,6),(5,7),(6,9)

备注: