Pagini recente » Cod sursa (job #1256691) | Cod sursa (job #2211866) | Cod sursa (job #762486) | Cod sursa (job #9929) | Cod sursa (job #281654)
Cod sursa(job #281654)
#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=0;
while(ve<n)
{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)
printf("%ld ",d[i]);
printf("\n");
return 0;
}