Cod sursa(job #2298376)

Utilizator cicero23catalin viorel cicero23 Data 8 decembrie 2018 09:22:56
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#define nmax 30001
#define mp make_pair
#define f first
#define s second
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int d[nmax],viz[nmax],nod,n,m,X,Y,x,y,dist,di;
vector <pair<int,long long> > v[nmax];
queue <pair<int,long long> > q;
int main( )
{
    f>>n>>m>>X>>Y;
    for (int i=1; i<=m; ++i)
    {
        f>>x>>y>>dist;
        v[x].push_back({y,dist});
        v[y].push_back({x,-dist});
    }
    viz[X]=1;
    q.push({X,0});
    while(!q.empty())
    {
        nod=q.front().first;
        di=q.front().second;
         q.pop();
        if(nod==Y) break;
        else
        {
            for(int i=0; i<v[nod].size(); ++i)
            {
                if(!viz[v[nod][i].first])
                {
                    int ww=v[nod][i].first;
                    d[v[nod][i].first]=v[nod][i].second+di;
                    q.push({v[nod][i].first,d[v[nod][i].first]});
                    viz[v[nod][i].first]=1;
                }
            }

        }
    }
    g<<d[Y];
    return 0;
}