Cod sursa(job #2929123)

Utilizator Alex_DiaconuDiaconu Alexandru Alex_Diaconu Data 24 octombrie 2022 19:30:24
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

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

const int N=30005;
int viz[N], y;
vector <pair <int, int>> v[N];
queue <int> q;
long long sum=0;

void bfs (int node)
{
    q.push(node);
    viz[node]=1;
    while (!q.empty())
    {
        node=q.front();
        q.pop();
        for (auto i:v[node])
        {
            if (viz[i.first]==0)
            {
                viz[i.first]=1;
                if (node>i.first)
                {
                    sum-=i.second;
                }
                else
                {
                    sum+=i.second;
                }
                if (i.first==y)
                {
                    cout << sum;
                    return;
                }
                q.push(i.first);
            }
        }
    }
}

int main()
{
    int n, m, x, a, b, p;
    cin >> n >> m >> x >> y;
    for (int i=1; i<=m; i++)
    {
        cin >> a >> b >> p;
        v[a].push_back(make_pair(b, p));
        v[b].push_back(make_pair(a, p));
    }
    bfs(x);
    return 0;
}