Cod sursa(job #1085891)

Utilizator NicuCJNicu B. NicuCJ Data 17 ianuarie 2014 15:17:11
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
int n, m, x, y, a, b, c, d[30001], i, xf;
bool v[30001];
struct coc
{
	int b, cost;
};
vector<coc> gr[30001];
queue<int> coada;
int main()
{
	ifstream f("sate.in");
	ofstream g("sate.out");
	f>>n>>m>>x>>y;
	for(i=1; i<=m; i++)
	{
		f>>a>>b>>c;
		coc A;
		A.b=b;
		A.cost=c;
		gr[a].push_back(A);
		A.b=a;
		A.cost=-c;
		gr[b].push_back(A);
	}
	coada.push(x);
	d[x]=0;
	v[x]=1;
	while(!coada.empty())
	{
		xf=coada.front(); coada.pop();
		for(i=0; i<gr[xf].size(); i++)
		{
			if(!v[gr[xf][i].b])
			{
				d[gr[xf][i].b]=d[xf]+gr[xf][i].cost;
				coada.push(gr[xf][i].b);
				v[gr[xf][i].b]=1;
			}
		}
	}
	g<<d[y];
}