Type: Default 1000ms 256MiB

多彩生成树

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小明有许多彩色顶点。颜色从 11nn (都包括在内),颜色为 ii 的顶点有 aia_i 个。小宝刚在算法课上学习了最小生成树问题,他决定用这些顶点来练习一下。

每对顶点由一条加权边连接。每条边的权重只与其两个端点的颜色有关。更确切地说,假设 cuc_u 是顶点 uu 的颜色,如果一条边连接了顶点 uuvv ,那么它的权重就是 bcu,cvb_{c_u, c_v}

请帮助小宝计算图中最小生成树的总权重。

回顾一下,最小生成树是连接加权图中的一个边的子集,它连接所有顶点,没有任何循环,并且总权重尽可能小。

输入格式

第一行包含一个整数 nn ( 1n1031 \le n \le 10^3 ),表示不同颜色的数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n ( 1ai1061 \le a_i \le 10^6 ),其中 aia_i 是颜色为 ii 的顶点个数。

在接下来的 nn 行中,第 ii 行包含 nn 个整数 bi,1,bi,2,,bi,nb_{i, 1}, b_{i, 2}, \cdots, b_{i, n} ( 1bi,j1061 \le b_{i, j} \le 10^6 ),其中 bi,jb_{i, j} 是连接颜色为 iijj 的两个顶点的边的权重。可以保证所有 1i,jn1 \le i, j \le n 都是 bi,j=bj,ib_{i, j} = b_{j, i}

输出格式

输出一行包含一个整数,表示最小生成树的总权。

样例1

输入

3
100 1 1
1 100 2
100 100 1
2 1 100

输出

102

样例2

输入

2
3 3
100 1
1 100

输出

5

样例解释

对于第一个样例,颜色11100100个顶点,颜色2211个顶点,颜色3311个顶点 颜色11内部边权为11,颜色22内部边权为100100,颜色33内部边权为100100。 颜色11和颜色22之间的最小边权为100100,颜色11和颜色3之间的最小边权为22,颜色22和颜色33之间的最小边权为11

颜色11100100个顶点通过内部边权11连接,总权为1001=99100-1=99 颜色2211个顶点通过边权11连接到颜色3的顶点 颜色33的顶点通过边权22连接到颜色11的某个顶点 总和:99+1+2=10299 + 1 + 2 = 102

数据分布

40% 40 \% 的样例,1n101 \le n \le 101ai1001 \le a_i \le 1001bi,j1001 \le b_{i, j} \le 100

100% 100 \% 的样例,1n1031 \le n \le 10^31ai1061 \le a_i \le 10^61bi,j1061 \le b_{i, j} \le 10^6

时空限制

  • 时间限制:2s2s
  • 空间限制:512M512M