WA+TLE,求助……
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const ll Inf=2147483647;
ll dis[10001];
map <pii,ll> e;
int book[10001];
int main()
{
int n,m,s,t,u,v,w;
cin>>n>>m>>s;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j) e[make_pair(i,j)]=Inf;
for(int i=1;i<=m;i++) cin>>u>>v>>w,e[make_pair(u,v)]=w;
for(int i=1;i<=n;i++) book[i]=0;
book[s]=1;
for(int i=1;i<=n;i++) dis[i]=e[make_pair(s,i)];
for(int i=1;i<=n-1;i++){
ll Min=Inf,u;
for(int j=1;j<=n;j++)
if(Min>dis[j] && book[j]==0)
u=j,Min=dis[j];
book[u]=1;
for(int v=1;v<=n;v++)
if(e[make_pair(u,v)]<Inf && Min+e[make_pair(u,v)]<dis[v])
dis[v]=Min+e[make_pair(u,v)];
}
for(int i=1;i<=n;i++) cout<<dis[i]<<' ';
return 0;
}