Cod sursa(job #1140534)

Utilizator CiurezAndreiCiurez Marius-Andrei CiurezAndrei Data 12 martie 2014 08:16:56
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include <vector>
#define DIM 30030
using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");
std::vector <  pair<int, int>  > l[100050];
int d[DIM], c[DIM], v[DIM];
int i,u,p,x,y,n,m,a,b,D,nr;

void bfs(int x) {
    int p = 1;
    int u = 1;
    c[1] = x;
    v[x] = 1;
    d[x] = 0;
    while (p<=u) {
        for (i=0;i<l[  c[p] ].size(); i++) {
            if (v[ l[  c[p]  ] [i] .first ] == 0) {
                d[   l[  c[p]  ] [i] .first   ]  = d[  c[p]   ] + l[  c[p]  ] [i] .second;
                u++;
                c[u] = l[  c[p]  ] [i] .first;
                v[l[  c[p]  ] [i] .first] = 1;

                if (c[u] == y) {
                    fout<<d[y];
                    return ;
                }

            }
        }
        p++;
    }
}


int main()
{
    fin>>n>>m>>x>>y;
    for(i=1;i<=m;i++){
        fin>>a>>b>>D;
        l[a].push_back( make_pair(b, D)   );
        l[b].push_back( make_pair(a, -D)   );

/*
        while(nr<=b){
            nr++;
            d[a].push_back(0);
        }
        d[a][b]=D;
        nr=0;
*/
    }

    bfs(x);

    return 0;
}