Cod sursa(job #2842185)

Utilizator ValiAntonieAntonie Valentin ValiAntonie Data 31 ianuarie 2022 11:48:30
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,m,x,y,a,b,k,mark[30005];
vector <pair<int,int> > v[30005];

void BFS(int start){
    mark[start] = 1;
    queue<pair<int,int> > Q;
    Q.push({start,1});
    while(!Q.empty()){
    int nod = Q.front().first;
    for(int i=0; i < v[nod].size();i++){
        int vecin = v[nod][i].first;
        int val = v[nod][i].second;
        if(!mark[vecin]){
            mark[vecin] = mark[nod] + val;
            Q.push({vecin,mark[vecin]});
        }
    }
    Q.pop();
    }
}

int main()
{
fin>>n>>m>>x>>y;
for(int i=1;i<=m;i++){
    fin>>a>>b>>k;
    v[a].push_back({b,k});
    v[b].push_back({a,-k});
}
BFS(x);
fout << mark[y] - 1;
    return 0;
}