Cod sursa(job #1517355)

Utilizator CalinSpiridonSpiridon Calin CalinSpiridon Data 4 noiembrie 2015 09:40:38
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <vector>
#include <queue>
#include <bitset>
using namespace std;

#define maxd 30010

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

int n, m, x, y, u, v, dist, t;
vector <int> a[maxd];
vector <int> d[maxd];
queue <int> c;
int lg[maxd];
bitset <maxd> viz;

int main(){
    fin>>n>>m>>x>>y;
    for(;m;--m){
        fin>>u>>v>>dist;
        a[u].push_back(v);
        a[v].push_back(u);
        d[u].push_back(dist);
        d[v].push_back(-dist);
    }
    c.push(x);
    viz[x]=true;
    int ok=1;
    while(c.size() && ok){
        t=c.front();
        c.pop();
        if(t==y) ok=0;
        for(int i=0;i<a[t].size();++i){
            int g=a[t][i];
            if(!viz[g]){
                viz[g]=true;
                lg[g]=lg[t]+d[t][i];
                c.push(g);
            }
        }
    }
    fout<<lg[y];



    return 0;
}