Cod sursa(job #409850)

Utilizator moonRadu Chichi moon Data 3 martie 2010 21:39:10
Problema Algoritmul lui Dijkstra Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<iostream>
#include<fstream>
#define INF 32000
using namespace std;
int a[250001][3],d[50001],n,x=1,i,m,nr=1;
int main()
{
	freopen("dijkstra.in","r",stdin);
        freopen("dijkstra.out","w",stdout);
        cin>>n>>m;
	for(i=2;i<=n;i++)
		d[i]=INF;
	d[1]=0;
	for(i=1;i<=m;i++)
	{
		cin>>a[i][0]>>a[i][1]>>a[i][2];
		if(a[i][0]==1) d[a[i][1]]=a[i][2];
	}
	while(x && nr<n)
	{
		x=0;
			for(i=1;i<=m;i++)
				if(d[a[i][1]]>d[a[i][0]]+a[i][2])
					{d[a[i][1]]=d[a[i][0]]+a[i][2];x=1;}
			nr++;
	}

for(i=2;i<=n;i++) { if(d[i]==INF) cout<<0<<" "; else cout<<d[i]<<" "; }
return 0;
}