Cod sursa(job #1840587)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 4 ianuarie 2017 16:44:10
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#include<vector>
#include<bitset>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
vector< pair <int,int> >L[30005];
int d[30005],v[30005];
bitset<30005>sol;
int x,y,n,m,a,b,q,i,p,u,dsol,vecin,nod;
int main(){
    fin>>n>>m>>x>>y;
    for(i=1;i<=m;i++){
        fin>>a>>b>>q;
        L[a].push_back(make_pair(b,q));
        L[b].push_back(make_pair(a,-q));
    }
    p=1;
    u=1;
    v[1]=x;
    sol[1]=x;
    d[x]=0;
    while(p<=u){
        nod=v[p];
        for(i=0;i<L[nod].size();i++){
            vecin=L[nod][i].first;
            dsol=L[nod][i].second;
            if(sol[vecin]==0){
                u++;
                v[u]=vecin;
                sol[vecin]=1;
                d[vecin]=d[nod]+dsol;
                if(vecin==y){
                    fout<<d[vecin];
                    return 0;
                }
            }
        }
        p++;
    }
    return 0;
}