Cod sursa(job #3374893)

Utilizator tenirinaIrina Tenita tenirina Data 9 noiembrie 2026 18:04:51
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <vector>
#include <cstdlib>

using namespace std;

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

int n, m, x, y;
vector<pair<int, int>> g[30003];   // vecin, cost
int dist[30003];                    // k fata de x, poate fi si neg
bool vizitat[30003];

void dfs(int nod)
{
    vizitat[nod] = true;
    for (auto p : g[nod])
    {
        int vecin = p.first;
        int cost = p.second;
        if(!vizitat[vecin])
        {
            dist[vecin] = dist[nod] + cost;
            dfs(vecin);
        }
    }
}

int main()
{
    in >> n >> m >> x >> y;
    for(int k = 1; k <= m; k++)
    {
        int i, j, d;
        in >> i >> j >> d;
        g[i].push_back({j, d});     // i < j
        g[j].push_back({i, -d});
    }

    dist[x] = 0;
    dfs(x);

    out << abs(dist[y]) << "\n";    // y poate fi si la stanga lui x
    return 0;
}