考虑每个关联值,它恰好会在先拿的神器那里被算到一次。
那下界就是每个关联值都与魔力值较小的神器乘。
显然下界是可以取到的,即按魔力值从小到大取神器。
注意读入用 scanf
不然会死得很惨。
code:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define Min(x,y)((x)<(y)?x:y)
#define For(i,x,y)for(i=x;i<=(y);i++)
int a[1005];
int main()
{
ll s=0;
int n,i,j,b;
scanf("%d",&n);
For(i,1,n)scanf("%d",&a[i]);
For(i,1,n)
For(j,1,n)
{
scanf("%d",&b);
if(i>j)s+=1LL*b*Min(a[i],a[j]);
}
printf("%lld",s);
return 0;
}