Pagini recente » Cod sursa (job #3346079) | Cod sursa (job #2690837) | Monitorul de evaluare | Cod sursa (job #3348513) | Cod sursa (job #2690843)
#include<cstdio>
const int I=1<<30,N=50001,M=250001;
int a[M],b[M],c[M],d[N],n,o,i,m;
int main()
{
freopen("dijkstra.in","r",stdin),freopen("dijkstra.out","w",stdout),scanf("%d%d",&n,&m);
for(i=2;i<=n;i++)
d[i]=I;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a[i],&b[i],&c[i]);
if(a[i]==1)
d[b[i]]=c[i];
}
while(!o)
for(o=i=1;i<=m;i++)
if(d[b[i]]>d[a[i]]+c[i])
d[b[i]]=d[a[i]]+c[i],o=0;
for(i=2;i<=n;i++)
printf("%d ",d[i]==I?0:d[i]);
}