Cod sursa(job #2861894)

Utilizator vladsipunct5555Butnrau Vlad vladsipunct5555 Data 4 martie 2022 17:28:34
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in ("sate.in");
ofstream out ("sate.out");
bool viz[100001];
int dist[100001];
vector <pair <int, int> > v[100001];
vector <int> ans;
void bfs (int start)
{
    queue <int> q;
    q.push(start);
    viz[start] = 1;
    while (!q.empty())
    {
        int nod = q.front();
        q.pop();
        for (auto vecin:v[nod])
        {
            if (!viz[vecin.first])
            {
                viz[vecin.first] = true;
                if (vecin.first > nod)
                    dist[vecin.first] = dist[nod] + vecin.second;
                else
                    dist[vecin.first] = dist[nod] - vecin.second;
                q.push(vecin.first);
            }
        }
    }
}
void solve ()
{
    int n, m, x, y;
    in >> n >> m >> x >> y;
    for (int i = 1;i<=m;++i)
    {
        int a, b, c;
        in >> a >> b >> c;
        v[a].push_back({b,c});
        v[b].push_back({a,c});
    }
    bfs(x);
    out << dist[y] << '\n';
    return;
}
int main ()
{
    int t = 1;
    // cin >> t;
    while (t--)
        solve();
}