Cod sursa(job #3231432)

Utilizator susanSusan Ssssss susan Data 26 mai 2024 13:54:21
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

struct Sat {
    int c = 0;

    vector<pair<int, int> > v;
};

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


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

    vector<Sat> G(n + 1);

    queue<int> Q;
    Q.emplace(x);

    G[x].c = 1;

    while (m--) {
        int a, b, d;
        f >> a >> b >> d;

        G[a].v.emplace_back(b, d);
        G[b].v.emplace_back(a, d);
    }


    while (!Q.empty()) {
        const auto i = Q.front();
        Q.pop();


        for (const auto &[j, d]: G[i].v) {
            if (!G[j].c) {
                G[j].c = G[i].c + (j < i ? -d : d);
                Q.emplace(j);
            }
        }
    }


    g << G[y].c - 1 << '\n';
}