Cod sursa(job #3371903)

Utilizator tudor120Dumitrache Tudor tudor120 Data 1 noiembrie 2026 17:33:40
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,x,y,i,j,d,viz[30001],dist[30001];
vector<pair<int,int>> graf[30001];

void bfs(int x) {
    queue<int> q;
    q.push(x);
    viz[i] = 0;
    dist[x] = 0;

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

        for (auto vecin : graf[nod]) {
            int urmator = vecin.first;
            int d = vecin.second;

            if (viz[urmator] == 0) {
                viz[urmator] = 1;

                if (urmator > nod) dist[urmator] = dist[nod] + d;
                else dist[urmator] = dist[nod] - d;

                q.push(urmator);
            }
        }
    }
}
int main() {
    fin >> n >> m >> x >> y;
    for (int k = 1; k <= m; k++) {
        fin >> i >> j >> d;
        graf[i].push_back({j,d});
        graf[j].push_back({i,d});
    }
    bfs(x);
    fout << dist[y];

    return 0;
}