Cod sursa(job #3371360)

Utilizator Alex112358Glavan Alexandru Alex112358 Data 29 octombrie 2026 21:42:35
Problema Sate Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>

using namespace std;

int N, M, X, Y;
vector<vector<pair<int,int>>> muchii;
int vizitat[30000];
stack<int> stiva;
long long distante[30000];

ifstream f("sate.in");
ofstream g("sate.out");




int main() {

	f >> N >> M >> X >> Y;
	muchii.resize(N + 1);
	for (int i = 1; i <= M; i++)
	{
		int n1, n2, D;
		f >> n1 >> n2>> D;
		muchii[n1].push_back({ n2,D });
		muchii[n2].push_back({ n1,-D });
	}

	stiva.push(X);

	while (!(stiva.empty() || stiva.top() == Y))
	{

		int nod = stiva.top();
		vizitat[nod] = 1;
		stiva.pop();

		for (auto [nod2, Dist] : muchii[nod])
			if (!vizitat[nod2])
			{
				stiva.push(nod2);
				vizitat[nod2] = 1;
				distante[nod2] = Dist + distante[nod];
			}
	}
	
	g << distante[Y];
	
	
	return 0;
}