Cod sursa(job #2784526)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 16 octombrie 2021 17:10:51
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
#define NMAX 30003

using namespace std;

int n, m, start, finish;
int dist[NMAX];

vector<vector<pair<int,int>> > g(NMAX);

void bfs() {
    queue<int> q;
    q.push(start);
    dist[start] = 0;
    while(!q.empty()) {
        int node = q.front();
        q.pop();
        for(auto child : g[node]) {
            if(dist[child.first] == -1) {
                dist[child.first] = dist[node]  + child.second;
                q.push(child.first);
            }
        }
    }
}

int main()
{
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);
    cin >> n >> m >> start >> finish;
    memset(dist,-1,sizeof(dist) );
    for(int i = 1; i <= m; i++) {
        int x, y, cost;
        cin >> x >> y >> cost;
        g[x].push_back({y,cost});
        g[y].push_back({x,-cost});
    }
    bfs();
    cout << dist[finish] << '\n';



    return 0;
}