Cod sursa(job #675202)

Utilizator elielisorElena Eli elielisor Data 7 februarie 2012 13:38:29
Problema Ubuntzei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
#define inf 0x3f3f3f
ifstream f("ubuntzei.in");
ofstream g("ubuntzei.out");
struct nod
{
	int y,c;
};
vector<vector< nod > > mat(50001);
vector< long > dist(50001,inf);
queue<int > q;
int n,m,k,i,j,orase[2000],x,y,c;
int main()
{
	f>>n>>m;
	f>>k;
	for(i=1;i<=k;i++)
		f>>orase[i];
	for(i=1;i<=m;i++)
	{
		f>>x>>y>>c;
		mat[x].push_back((nod) {y,c});
	}
	q.push(1);
	dist[1]=0;
	while(!q.empty())
	{
		x=q.front();
		for(i=0;i<mat[x].size();i++)		
			if(dist[mat[x][i].y]> dist[x]+mat[x][i].c)
			{
				dist[mat[x][i].y]=dist[x]+mat[x][i].c;
				q.push(mat[x][i].y);
			}
		q.pop();
	}
	g<<dist[n];
}