Cod sursa(job #3131810)

Utilizator unomMirel Costel unom Data 21 mai 2023 17:05:08
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <queue>

using namespace std;

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

int n, m, x, y;
vector<pair<int, int>> v[30005];
int viz[30005], ans[30005];
queue<int> q;

int main()
{
    in>>n>>m>>x>>y;

    int st, dr, d;
    for(int i = 1; i<=m; i++)
    {
        in>>st>>dr>>d;

        v[st].push_back({dr, d});
        v[dr].push_back({st, -d});
    }

    if(x > y)
    {
        swap(x, y);
    }

    viz[x] = 1;
    q.push(x);
    int nod;

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

        viz[nod] = 1;

        for(auto i: v[nod])
        {
            if(viz[i.first] == 0)
            {
                ans[i.first] = ans[nod] + i.second;
                q.push(i.first);
            }
        }

        q.pop();
    }

    out<<ans[y];

    return 0;
}