Cod sursa(job #3374393)

Utilizator Lleonardo211Leonardo-Ioan Leonte Lleonardo211 Data 8 noiembrie 2026 23:44:34
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");

int n, m, sat1, sat2;

vector<vector<pair<int, int>>> adiacent;
vector<bool> vizitat;
vector<int> distante;

void dfs(int x) {
    vizitat[x] = true;
    for (auto i : adiacent[x]) {
        int vecin = i.first;
        int cost = i.second;
        if (!vizitat[vecin]) {
            distante[vecin] = distante[x] + cost;
            dfs(vecin);
        }
    }
}

int main() {
    fin >> n >> m;
    fin >> sat1 >> sat2;
    adiacent.resize(n + 1);
    distante.resize(n + 1);
    distante[sat1] = 0;
    vizitat.assign(n + 1, false);

    for (int i = 1; i <= m; i++) {
        int x, y, dist;
        fin >> x >> y >> dist;
        adiacent[x].push_back({y, dist});
        adiacent[y].push_back({x, -dist});
    }

    dfs(sat1);

    if (distante[sat2] > 0) fout << distante[sat2];
    else fout << distante[sat2];

    return 0;
}