Cod sursa(job #1016468)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 26 octombrie 2013 12:45:33
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <queue>
#include <vector>
#define Nmax 30099
#define Mmax 100099
#define Inf 999999999
#define mp make_pair
#define pb push_back
#define x first
#define c second
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int N,M,X,Y,d[Nmax],viz[Nmax];

vector < pair < int ,int> > Graph[Nmax];
queue < int > Q;

inline void ReadInput()
{
    f>>N>>M>>X>>Y;
    for(int i=1;i<=M;++i)
    {
        int x,y,c;
        f>>x>>y>>c;
        Graph[x].pb(mp(y,c));
        Graph[y].pb(mp(x,-c));
    }

}

void BFS(int sursa)
{
    Q.push(X);
    for(; !Q.empty();Q.pop())
    {
        int nod=Q.front();
        vector < pair < int ,int> >::iterator it;
        for(it=Graph[nod].begin();it!=Graph[nod].end();++it)
        if(!viz[it->x])
        {
            d[it->x]=d[nod]+it->c;
            viz[it->x]=1;
            Q.push(it->x);
        }

    }
}
int main()
{
    ReadInput();
    BFS(X);
    g<<d[Y]<<'\n';
    f.close();g.close();
    return 0;
}