Cod sursa(job #418520)

Utilizator OdinSandu Bogdan-Mihai Odin Data 15 martie 2010 22:59:10
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#define INF 2000000000
#define Nmax 50005
int n,m,x,y,z,i,j,N,dmin[Nmax],v[5*Nmax][3],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",&v[i][0],&v[i][1],&v[i][2]);
	for(i=2;i<=n;i++)
		dmin[i]=INF;
	while(!ok)
	{
		ok=1;
		for(i=1;i<=m;i++)
			if(dmin[v[i][0]]+v[i][2]<dmin[v[i][1]])
			{
				dmin[v[i][1]]=dmin[v[i][0]]+v[i][2];
				ok=0;
			}
	}
	for(i=2;i<=n;i++)
	{
		if(dmin[i]==INF)
			printf("0 ");
		else printf("%d ",dmin[i]);
	}
	return 0;
}