Cod sursa(job #3373178)

Utilizator bexxRebeca N bexx Data 6 noiembrie 2026 11:31:44
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <vector>
#include <climits>
#include <queue>
using namespace std;

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

int n, m, x, y;
vector<int>d;
vector<vector<pair<int,int>>>g;

void graph() {
    cin>>n>>m>>x>>y;
    d.resize(n+1,INT_MAX);
    g.resize(n+1);
    int i,j,cost;
    for (int k=0;k<m;k++) {
        cin>>i>>j>>cost;
        g[i].push_back({j,cost});
        g[j].push_back({i,cost});
    }
}

void bfs() {
    queue<int>q;
    q.push(x);
    d[x]=0;
    while (!q.empty()) {
        int nod = q.front();
        q.pop();
        for (auto v : g[nod]) {
            int vnod=v.first, vcost=v.second;
            //cout<<vnod<<'*';
            if (d[vnod]==INT_MAX) {
                if ( vnod > nod) //e in dreapta
                    d[vnod]=d[nod]+vcost;
                else
                    d[vnod]=d[nod]-vcost;
                q.push(vnod);
            }
        }
    }
}

int main() {
    graph();
    bfs();
    /**for (auto it: d)
        cout<<it<<' ';*/
    cout<<d[y];
    return 0;
}