Cod sursa(job #1837234)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 29 decembrie 2016 12:10:00
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#include <vector>
#define DIM 30001
using namespace std;

vector < pair<int,int> > L[DIM];
int n,m,x,y,p,u,a,b,cost,vecin,i,nr,ok;
int c[DIM],v[DIM],w[DIM];
int main (){
    ifstream fin ("sate.in");
    ofstream fout ("sate.out");

    fin>>n>>m>>x>>y;
    for (i=1;i<=m;i++){
        fin>>a>>b>>cost;
        L[a].push_back(make_pair(b,cost));
        L[b].push_back(make_pair(a,-cost));
    }
    p = 1;
    u = 1;
    c[1] = x;
    v[x] = 1; // cei vizitati
    w[x] = 0; // vectorul de costuri
    while (p<=u){
        for (i=0;i<L[c[p]].size();i++){
            vecin = L[c[p]][i].first;
            nr = L[c[p]][i].second;
            if (v[vecin] == 0){
                u++;
                c[u] = vecin;
                v[vecin] = 1+v[c[p]];
                w[vecin] = nr + w[c[p]];
                if (vecin == y){
                    ok = 1;
                    fout<<w[vecin];
                    break;
                }
            }
        }
        if (ok == 1)
            break;

        p++;
    }





    return 0;
}