#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
struct node
{
int from,to,va,next;
};
queue<int> que;
node edge[400009];
int head[2009];
int num;
int dis[2009];
int flag[2009];
void add(int from,int to,int va)
{
edge[++num].next=head[from];
edge[num].from=from;
edge[num].to=to;
edge[num].va=va;
head[from]=num;
}
int main()
{
int m;
scanf("%d",&m);
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==0&&b==0&&c==0)break;
add(a,b,c);
}
que.push(1);
flag[1]=1;
dis[1]=0x7fffffff;
while(que.empty()==0)
{
int u=que.front();
que.pop();
flag[u]=0;
for(int i=head[u];i!=0;i=edge[i].next)
{
if(dis[edge[i].to]<min(dis[u],edge[i].va))
{
dis[edge[i].to]=min(dis[u],edge[i].va);
if(flag[edge[i].to]==0)
{
flag[edge[i].to]=1;
que.push(edge[i].to);
}
}
}
}
for(int i=2;i<=m;i++)printf("%d\n",dis[i]);
return 0;
}
想越狱的小杉
最新推荐文章于 2023-05-20 13:35:07 发布