Cod sursa(job #2447151)

Utilizator Iulia25Hosu Iulia Iulia25 Data 12 august 2019 11:57:03
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream fin ("sate.in");
ofstream fout ("sate.out");

int n, m, x, y, a, b, c, marcat[30005];
vector <int> vecin[30005], cost[30005], q;

void dfs(int nod)  {
	for (int i = 0; i < vecin[nod].size(); ++i)  {
		b = vecin[nod][i];
		c = cost[nod][i];
		if (marcat[b])
			continue;
		if (b < nod)
			marcat[b] = marcat[nod] - c;
		else
			marcat[b] = marcat[nod] + c;
		if (b == y)  {
			fout << marcat[b];
			exit(0);
		}
		dfs(b);
	}
}

int main()  {
	fin >> n >> m >> x >> y;
	for (int i = 1; i <= m; ++i)  {
		fin >> a >> b >> c;
		vecin[a].push_back(b);
		cost[a].push_back(c);
		vecin[b].push_back(a);
		cost[b].push_back(c);
	}
	dfs(x);
	return 0;
}