Cod sursa(job #1114232)

Utilizator linerunnerMihai Ion linerunner Data 21 februarie 2014 13:54:46
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define nmax 50002
#define mmax 250002
#define inf 2000000000
using namespace std;
long long muchiex[mmax],muchiey[mmax],muchiecost[mmax];
long long d[nmax];
long long i,x,y,c,m,n,OK;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int main()
{ f>>n>>m;
		for (i=1 ;i<=m ; i++)
		{f>>x>>y>>c;
		muchiex[i]=x;
		muchiey[i]=y;
		muchiecost[i]=c;
		if (x==1) d[y]=c;
		}
for (i=2 ; i<=n ; i++)
	if (d[i]==0) d[i]=inf;
do
{ OK=1;
for (i=1 ; i<=m ; i++)
	if (d[muchiey[i]]>d[muchiex[i]]+muchiecost[i] )
	{d[muchiey[i]]=d[muchiex[i]]+muchiecost[i];
	OK=0;
	}
}
while (OK==0) ;
for (i=2;i<=n;i++)
{if (d[i]==inf) g<<'0 ' ;
	 g<<d[i]<<' '; }
f.close();
g.close();
return 0 ; 
}