Mai intai trebuie sa te autentifici.

Cod sursa(job #2014411)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 23 august 2017 16:30:38
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
int a,b,c,n,m,x,y,v[30001],go,st,dr,i,distanta[30001],hz[30001];
vector< pair<int,int> >h[30001];
int main(){
    in >> n >> m >> x >> y;
    for( i = 1; i <= m; i ++ ){
        in >> a >> b >> c;
        h[a].push_back( make_pair( b,c ) );
        h[b].push_back( make_pair( a,c ) );
    }
    v[1] = x;
    for( st = 1, dr = 1; st <= dr; st ++ ){
        for( i = 0; i < h[v[st]].size(); i ++ ){
            if( v[st] < h[v[st]][i].first )
                distanta[ h[v[st]][i].first ] = distanta[v[st]] + h[v[st]][i].second;
            else
                distanta[ h[v[st]][i].first ] = distanta[v[st]] - h[v[st]][i].second;
            if( hz[ h[v[st]][i].first ] == 0 ){
                hz[ h[v[st]][i].first ] = 1;
                dr++;
                v[dr] = h[v[st]][i].first;
            }
        }
    }
    out<<distanta[y];
    return 0;
}