Cod sursa(job #3372274)

Utilizator alexlazuLazureanu Alexandru Ioan alexlazu Data 2 noiembrie 2026 22:33:58
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>

using namespace std;

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

#define cin in
#define cout out

int n, m, st, sf;

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

void bfs()
{
    vector<long long> dist(n + 1, 0);
    vector<bool> viz(n + 1, false);

    queue<int> q;

    q.push(st);
    viz[st] = true;

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

        for (auto [vecin, d] : v[nod])
        {
            if (!viz[vecin])
            {
                viz[vecin] = true;
                dist[vecin] = dist[nod] + d;
                q.push(vecin);
            }
        }
    }

    cout << dist[sf];
}

int main()
{
    cin >> n >> m >> st >> sf;

    v.resize(n + 1);

    for (int i = 1; i <= m; i++)
    {
        int s, f, d;
        cin >> s >> f >> d;

        v[s].push_back({ f, d });
        v[f].push_back({ s, -d });
    }

    bfs();

    return 0;
}