#zXSCSybttg030103. 1488:新的开始

1488:新的开始

好的,我将题目中的数字和名称用 ...... 标出。


题目描述

发展采矿业首先得有矿井,小 FF 在岛上挖了 nn 口矿井,但他需要考虑矿井供电问题。
为了保证电力供应,小 FF 想到了两种办法:

  1. 在某口矿井上建立一个发电站,费用为 viv_i(发电站的输出功率可以供给任意多个矿井)。
  2. 将一口矿井与另外的已经有电力供应的矿井之间建立电网,费用为 pi,jp_{i,j}

小 FF 希望你想出一个保证所有矿井电力供应的最小花费。


输入格式

第一行一个整数 nn,表示矿井总数。
2n+12 \sim n+1 行,每行一个整数 viv_i,表示在第 ii 口矿井上建立发电站的费用。
接下来是一个 n×nn \times n 的矩阵 pp,其中 pi,jp_{i,j} 表示在第 ii 口矿井和第 jj 口矿井之间建立电网的费用。
数据保证 pi,j=pj,ip_{i,j} = p_{j,i},且 pi,i=0p_{i,i} = 0

输出格式

输出一个整数,表示让所有矿井获得充足电能的最小花费。


数据范围

  • 对于 30%30\% 的数据:1n501 \le n \le 50
  • 对于 100%100\% 的数据:1n3001 \le n \le 300, 0vi,pi,j1050 \le v_i, p_{i,j} \le 10^5

输入样例

4  
5  
4 
4  
3  
0 2 2 2  
2 0 3 3  
2 3 0 4  
2 3 4 0

输出样例

9

样例解释