6个TLE
#include <iostream>
#include <cstring>
using namespace std;
int arr[1005][1005];
int n,m,a,b,c,ans;
void read(int& a)
{
int s=0,w=1;
char ch=getchar();
while (ch<'0'||ch>'9'){
if (ch=='-')
w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
a=s*w;
}
int main(){
read(n);
read(m);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
arr[i][j]=1e8;
arr[i][i]=0;
}
for(int i=1;i<=m;i++){
read(a);read(b);read(c);
arr[a][b]=min(arr[a][b],c);
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(arr[i][j]>arr[i][k]+arr[k][j])
arr[i][j]=arr[i][k]+arr[k][j];
for(int i=2;i<=n;i++)
ans+=arr[1][i]+arr[i][1];
cout << ans;
return 0;
}