Cod sursa(job #856434)

Utilizator Kira96Denis Mita Kira96 Data 16 ianuarie 2013 15:10:42
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<fstream>
#define inf 60000000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int m,i,D[50005],change,n;
struct el
{
	int s,d,c;
}v[50005];
int main ()
{
	f>>n>>m;
	for(i=2;i<=n;++i)
		D[i]=inf;
	for(i=1;i<=m;++i)
	{
		f>>v[i].s>>v[i].d>>v[i].c;
		if(v[i].s==1)
			D[v[i].d]=v[i].c;
	}
	change=1;
	while(change)
	{
		change=0;
		for(i=2;i<=n;++i)
		{
			if(D[v[i].s]+v[i].c<D[v[i].d])
			{
				D[v[i].d]=D[v[i].s]+v[i].c;
				change=1;
			}
		}
	}
	for(i=2;i<=n;++i)
		g<<D[i]<<" ";
	return 0;
}