Cod sursa(job #3372355)

Utilizator iarinagIarina Grigoriu iarinag Data 3 noiembrie 2026 12:45:41
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <vector>
using namespace std;

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

int n, m, x, y;
vector<pair<int,int>> v[30001];
int d[30001];
bool viz[30001];
int coada[30001];

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

    int st = 1, dr = 1;
    coada[1] = x;
    viz[x] = true;

    while (st <= dr)
    {
        int nod = coada[st];
        st++;
        for (auto p : v[nod])
        {
            int vecin = p.first;
            if (!viz[vecin])
            {
                viz[vecin] = true;
                d[vecin] = d[nod] + p.second;
                dr++;
                coada[dr] = vecin;
            }
        }
    }

    if (d[y] < 0)
        d[y] = -d[y];
    fout << d[y];
    return 0;
}