Cod sursa(job #896721)

Utilizator radu_bucurRadu Bucur radu_bucur Data 27 februarie 2013 16:56:40
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
vector<int> a[30001], b[30001];
int x,y,n,m,i,d[300001],z,g,c,h;
queue<int>q;
int main(){
	in>>n>>m>>x>>y;
	for(i=1;i<=m;i++)
	{
		in>>g>>h>>c;
		a[g].push_back(h);
		b[g].push_back(c);
		a[h].push_back(g);
		b[h].push_back(-c);
	}
	for(i=1;i<=n;i++) d[i]=-1;
	d[x]=0; q.push(x);
	while(!q.empty())
	{
		x=q.front();
		q.pop();
		for(i=0;i<a[x].size();i++)
		{
			z=a[x][i];
			if(d[z]==-1)
			{
				q.push(z);
				d[z]=d[x]+b[x][i];
			}
		}
	}
	out<<d[y];
	return 0;
}