Cod sursa(job #2690843)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 26 decembrie 2020 10:58:43
Problema Algoritmul lui Dijkstra Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#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]);
}