Pagini recente » Cod sursa (job #3259445) | Cod sursa (job #1232961) | Cod sursa (job #518661) | Cod sursa (job #624734) | Cod sursa (job #287190)
Cod sursa(job #287190)
#include<stdio.h>
int a[2500001],n,m,b[2500001],c[2500001],d[50001],i,j,k,l,ok;
int main(){
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%d %d",&n,&m);
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];
}
for(i=2;i<=n;i++)
if(d[i]==0)
d[i]=1000000000;
ok=0;
while(!ok){
ok=1;
for(i=1;i<=m;i++)
if(d[b[i]]>(d[a[i]]+c[i]))
d[b[i]]=d[a[i]]+c[i],ok=0; }
for(i=2;i<=n;i++)
if(d[i]!=1000000000)
printf("%d ",d[i]);
else
printf("%d ",-1);
return 0;}