Cod sursa(job #3370390)

Utilizator FrozenRoseIancu Madalin FrozenRose Data 25 octombrie 2026 22:12:49
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cmath>

using namespace std;

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

struct Muchie
{
    int destinatie;
    int distanta;
};

int main()
{
    int n,m,x,y;
    f>>n>>m>>x>>y;

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

    for(int k =1 ; k<=m ; k++)
    {
        int i,j,d;
        f>>i>>j>>d;
        graf[i].push_back({j,d});
        graf[j].push_back({i,-d});
    }
    const long long INF = 1e18;
    vector<long long> dist (n+1, INF);


    queue<int> q;
    q.push(x);
    dist[x] = 0;

    while (!q.empty())
    {
        int nod = q.front();
        q.pop();

        if (nod == y) {
            break;
        }

        for (const auto& vecin : graf[nod]) {
            if (dist[vecin.destinatie] == INF) {
                dist[vecin.destinatie] = dist[nod] + vecin.distanta;
                q.push(vecin.destinatie);
            }
        }
    }

    g << abs(dist[y]) << "\n";
    return 0;
}