Cod sursa(job #3339613)

Utilizator PopRadGabPopescu Radu Gabriel PopRadGab Data 9 februarie 2026 10:57:46
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;

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

struct drum{
    int loc,dist;
};

vector<vector<drum>> Drum(30005);
vector<int> Dist(30005);
vector<bool> vizitat(30005);

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N,M,X,Y;
    fin>>N>>M>>X>>Y;

    for(int i=1;i<=M;i++){
        int s1,s2,d;
        fin>>s1>>s2>>d;
        Drum[s1].push_back({s2,d});
        Drum[s2].push_back({s1,-d});
    }

    queue<int> q;
    q.push(X);
    vizitat[X]=true;
    Dist[X]=0;

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

        if(crt==Y)
            break;
        for(auto vecin : Drum[crt]){
            if(!vizitat[vecin.loc]){
                vizitat[vecin.loc]=true;
                Dist[vecin.loc]=Dist[crt]+vecin.dist;
                q.push(vecin.loc);
            }
        }
    }
    fout<<Dist[Y];
    return 0;
}