Cod sursa(job #2783453)

Utilizator game_difficultyCalin Crangus game_difficulty Data 14 octombrie 2021 14:57:00
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <set>
#include <queue>

using namespace std;

ifstream cin("sate.in");
ofstream cout("sate.out");

using pii = pair<int, int>;

set<pii> graf[30005];


int main() {
	int n, m, X, Y;
	cin >> n >> m >> X >> Y;
	for (int i = 1; i <= m; i++) {
		int x, y, d;
		cin >> x >> y >> d;
		graf[x].insert({ y, d });
		graf[y].insert({ x, -d });
	}
	queue<pii> q;
	q.push({ X, 0 });
	while (!q.empty()) {
		pii &now = q.front();
		if (now.first == Y) {
			cout << now.second;
			return 0;
		}
		for (pii i : graf[now.first]) {
			q.push({ i.first, now.second + i.second});
		}
		graf[now.first].clear();
		q.pop();
	}
	return 0;
}