题目链接:https://codeforces.com/contest/25/problem/C
#include <iostream>
using namespace std;
static const int MAXN=300+10;
int f[MAXN][MAXN];
int n,m,u,v,w;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&f[i][j]);
scanf("%d",&m);
while(m--)
{
scanf("%d%d%d",&u,&v,&w);
if(f[u][v]>w)
{
f[u][v]=f[v][u]=w;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
f[i][j]=f[j][i]=min(f[i][j],f[i][u]+f[u][j]);
f[i][j]=f[j][i]=min(f[i][j],f[i][v]+f[v][j]);
}
}
long long sum=0;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
sum=sum+f[i][j];
printf("%lld ",sum);
}
return 0;
}