Pagini recente » Cod sursa (job #2006670) | Istoria paginii runda/simulare_republicana_6/clasament | Istoria paginii runda/oji_11_2023 | Clasament oji12_simulare | Cod sursa (job #281668)
Cod sursa(job #281668)
#include<stdio.h>
long n,m,i,a[50005],b[50005],v[50005],d[50005],ve,min,nod,viz[50005];
int main()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=m;++i)
scanf("%ld%ld%ld",&a[i],&b[i],&v[i]);
for(i=1;i<=n;++i)d[i]=2147000000;
d[1]=0;
ve=1;
while(ve)
{ve=0;
for(i=1;i<=m;++i)
if(d[b[i]]>d[a[i]]+v[i])d[b[i]]=d[a[i]]+v[i],ve=1;/*
min=2147100000;
nod=0;
for(i=1;i<=n;++i)if(d[i]<min&&!viz[i])min=d[i],nod=i;
viz[nod]=1;
++ve;
for(i=1;i<=m;++i)
if(a[i]==nod)
if(!viz[b[i]])
if(v[i]+d[nod]<d[b[i]])d[b[i]]=v[i]+d[nod]; */
}
for(i=2;i<=n;++i)
if(d[i]==2147000000)printf("0 ");
else printf("%ld ",d[i]);
printf("\n");
return 0;
}