Cod sursa(job #3371366)

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

using namespace std;

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

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);
	vizitat[X] = 1;
	while (!(stiva.empty() || stiva.top() == Y))
	{

		int nod = stiva.top();
		
		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;
}