Cod sursa(job #851537)

Utilizator crushackPopescu Silviu crushack Data 10 ianuarie 2013 00:58:20
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <vector>
#define NMax 30010
using namespace std;

const char IN[]="sate.in",OUT[]="sate.out";

ifstream fin(IN);
ofstream fout(OUT);

int N,M,X,Y;
int D[NMax];
bool b[NMax];
vector<pair<int,int> > v[NMax];

void dfs(int x)
{
	b[x]=true;
	for (int i=0;i<(int)v[x].size();++i) if (!b[v[x][i].first])
		D[v[x][i].first]=D[x]+v[x][i].second,
		dfs(v[x][i].first);
}

int main()
{
	int i,x,y,c;
	fin>>N>>M>>X>>Y;
	for (i=1;i<=M;++i)
		fin>>x>>y>>c,
		v[x].push_back(make_pair(y,c)),
		v[y].push_back(make_pair(x,-c));
	fin.close();

	dfs(X);

	fout<<D[Y]<<"\n";
	fout.close();

	return 0;
}