Cod sursa(job #723055)

Utilizator mening12001Andrei Geogescu mening12001 Data 24 martie 2012 20:57:51
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
const int pinf=0x3f3f3f3f; 
struct muchie {int y,c;};
int main()
{ifstream f("dijkstra.in"); 
ofstream h("dijkstra.out");
vector< vector <muchie> > v(50000);
queue<int> p;
int n,m,i,x,y,d[50000],xx;
muchie mm;
f>>n>>m;
for(i=1;i<=m;i++)
	{f>>x>>mm.y>>mm.c;
v[x].push_back(mm);}
	
for(i=2;i<=n;i++)
		d[i]=pinf;
d[1]=0;
	p.push(1);
while(!p.empty())
	{xx=p.front();
	p.pop();
	for(i=0;i<v[xx].size();i++)
	if(d[v[xx][i].y]>d[xx]+v[xx][i].c||d[v[xx][i].y]==0)
{d[v[xx][i].y]=d[xx]+v[xx][i].c;
		p.push(v[xx][i].y);	}}
	
	for(i=2;i<=n;i++)
		if(d[i]==pinf)
			h<<'0 ';
		else
		h<<d[i]<<" ";
return 0;}