Cod sursa(job #3374868)

Utilizator GabrielaTudoracheTudorache Gabriela GabrielaTudorache Data 9 noiembrie 2026 16:16:53
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;

struct Muchie {
    int vecin;
    int cost;
};

int main() {
    ifstream fin("sate.in");
    ofstream fout("sate.out");

    int n, m, x, y;
    fin >> n >> m >> x >> y;

    vector<vector<Muchie>> vecini(n + 1);

    for (int k = 0; k < m; k++) {
        int i, j, d;
        fin >> i >> j >> d;
        vecini[i].push_back({j, d});  
        vecini[j].push_back({i, -d});  
    }

    vector<int> poz(n + 1, 0);
    vector<bool> vizitat(n + 1, false);

    queue<int> coada;
    vizitat[x] = true;
    poz[x] = 0;
    coada.push(x);

    while (!coada.empty()) {
        int sat = coada.front();
        coada.pop();

        for (Muchie mu : vecini[sat]) {
            if (!vizitat[mu.vecin]) {
                vizitat[mu.vecin] = true;
                poz[mu.vecin] = poz[sat] + mu.cost;
                coada.push(mu.vecin);
            }
        }
    }

    int raspuns = poz[y];
    if (raspuns < 0) {
        raspuns = -raspuns;
    }

    fout << raspuns << "\n";
    return 0;
}