为什么会全TLE?
#include<bits/stdc++.h>
#define lo long long
using namespace std;
lo n,m,s,u,v,w,cnt,minn,flag;
lo head[100005],dis[100005];
bool use[100005];
struct node{
lo start,end,height,next;
}a[500005];
void add(lo u,lo v,lo w)
{
++cnt;
a[cnt].start=u;
a[cnt].end=v;
a[cnt].height=w;
a[cnt].next=head[u];
head[u]=cnt;
}
int main()
{
scanf("%lld %lld %lld",&n,&m,&s);
for(int i=1;i<=m;i++)
{
scanf("%lld %lld %lld",&u,&v,&w);
add(u,v,w);
}
memset(dis,127,sizeof(dis));
dis[s]=0;
for(int i=1;i<=n;i++)
{
minn=2147483647;
for(int j=1;j<=n;j++)
if(!use[j]&&minn>dis[j])
{
flag=j;
minn=dis[j];
}
use[flag]=1;
for(int j=head[flag];j;j=a[j].next)
dis[a[j].end]=min(dis[a[j].end],dis[a[j].start]+a[j].height);
}
for(int i=1;i<=n;i++)
printf("%lld ",dis[i]);
}