Cod sursa(job #812628)

Utilizator hellol30FMI Macovei Daniel hellol30 Data 14 noiembrie 2012 09:12:07
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int x[250005],y[250005],c[250005];
int d[50005],n,m,ok;
int main()
{   f>>n>>m;
    for(register int i=2; i<=n; ++i) d[i]=INF;
    for(register int i=1; i<=m; ++i)
    {	f>>x[i]>>y[i]>>c[i];
        if(x[i]==1) d[y[i]]=c[i];
    }
    do  {	ok=0;
			for(register int i=1; i<=m; ++i)
				if(d[y[i]]>d[x[i]]+c[i]) d[y[i]]=d[x[i]]+c[i], ok=1;
		}
    while (ok);
    for(register int i=2; i<=n; ++i)
        if(d[i]!=INF) g<<d[i]<<' '; else g<<"0 ";
    g<<'\n';
    return 0;
}