Cod sursa(job #2783447)

Utilizator game_difficultyCalin Crangus game_difficulty Data 14 octombrie 2021 14:47:52
Problema Sate Scor 60
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");

set<pair<int, int>> 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<pair<int, int>> q;
	q.push({ X, 0 });
	while (!q.empty()) {
		auto now = q.front();
		q.pop();
		if (now.first == Y) {
			cout << now.second;
			return 0;
		}
		for (auto i : graf[now.first]) {
			q.push({ i.first, now.second + (i.first > now.first ? i.second : -i.second)});
		}
	}
	return 0;
}