Cod sursa(job #675546)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 7 februarie 2012 18:53:28
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
using namespace std;
int X,Y,d,D[250005],S[250005],i,j,N,M,ok,poz,Min,k;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");

struct nod{
	int x,y,dist;
	nod* adr;
}*A,*p;
void citire (){
	
	f>>N>>M;
	for(i=2;i<=N;i++)
			D[i]=99999999;
	for(int i=1;i<=M;i++){
		f>>X>>Y>>d;
		p=new nod;
		p->x =X;
		p->y =Y;
		p->dist=d;
		p->adr=A;
		A=p;
		if (X==1)
			D[Y]=d;
		
	}
}
int main(){
		
		
	citire();
	ok=1;
	
	while (ok)
	{p=A; ok=0;
		while (p!=NULL)
			{
				if (D[p->y]>D[p->x]+p->dist)
				{
					D[p->y]=D[p->x]+p->dist; 
					ok=1;
				}
				p=p->adr;
			}
	}
	
		for(i=2;i<=N;i++)
			if(D[i]!=99999999)
				g<<D[i]<<" ";
			else
				g<<"0"<<" ";
return 0;
}