Cod sursa(job #2450744)

Utilizator petrisorvmyVamanu Petru Gabriel petrisorvmy Data 24 august 2019 14:36:03
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda repost Marime 0.99 kb
#include <fstream>
#include <queue>
#include <vector>
#define NMAX 30010

using namespace std;

ifstream f("sate.in");
ofstream g("sate.out");

int n, x, y, m, dist[NMAX];
vector < pair <int,int> > v[NMAX];
int BFS(int start, int finish)
{
    queue <int> Q;
    if(start == finish) return 0;
    Q.push(start);
    while(!Q.empty() && !dist[finish])
    {
        int nod = Q.front();
        Q.pop();
        /*
        */
        for(int i = 0; i < v[nod].size(); ++i)
        if(dist[v[nod][i].first] == 0 && (v[nod][i].first != start) )
        {
            dist[v[nod][i].first] = dist[nod] + v[nod][i].second;
            Q.push(v[nod][i].first);
        }
    }
    return dist[finish];
}
int main()
{
    f >> n >> m >> x >> y;

    for(int i = 1; i <= m; ++i)
    {
        int a, b, cost;
        f >> a >> b >> cost;
        v[a].push_back({b,cost});
        v[b].push_back({a,-cost});
    }
    g << BFS(x,y);
    f.close(); g.close();
    return 0;
}