Cod sursa(job #1776946)

Utilizator razvan242Zoltan Razvan-Daniel razvan242 Data 11 octombrie 2016 22:34:33
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;
using pii = pair<int, int>;

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

const int NMAX = 30001;

int n, m, start, stop;
vector<pii> v[NMAX];
int d[NMAX];
bool viz[NMAX];

inline void bfs(int source) {
    viz[source] = 1;
    queue<int> Q;
    Q.push(source);
    int node;
    int cost, vecin;
    while (Q.size()) {
        node = Q.front();
        Q.pop();
        for (const pii& x: v[node]) {
            vecin = x.first, cost = x.second;
            if (!viz[vecin]) {
                viz[vecin] = 1;
                d[vecin] = d[node] + cost;
                Q.push(vecin);
            }
        }
    }
}

int main()
{
    fin >> n >> m >> start >> stop;
    for (int x, y, c; m; --m) {
        fin >> x >> y >> c;
        v[x].push_back({y, c});
        v[y].push_back({x, -c});
    }
    bfs(start);
    fout << d[stop];
    return 0;
}