Cod sursa(job #560057)

Utilizator fgravilaGravila Felix fgravila Data 18 martie 2011 12:10:43
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#define infinit 10000
using namespace std;
int a[1000][1000];
long n,m;

void citire(){
	ifstream in("dijkstra.in");
	in>>n>>m;
	long i,j,k,cost;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			a[i][j]=infinit;
	for(i=1;i<=m;i++){
		in>>j>>k>>cost;
		a[j][k]=cost;
	}
}

void dijkstra(){
	long k,i;
	for(k=2;k<=n;k++)
		for(i=2;i<=n;i++)
			if(i!=k)
				if(a[1][i]>a[1][k]+a[k][i])
					a[1][i]=a[1][k]+a[k][i];
	for(i=2;i<=n;i++)
		if(a[1][i]==infinit)
			a[1][i]=0;	
}

void afisare(){
	long i;
	ofstream out("dijkstra.out");
	for(i=2;i<=n;i++)
		out<<a[1][i]<<" ";
	out.close();
}

int main(){
	citire();
	dijkstra();
	afisare();
	return 0;
}