Cod sursa(job #1052667)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 11 decembrie 2013 17:36:42
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define MAX_N 30001
using namespace std;

vector< pair<int,long long> > v[MAX_N];
queue<int> coada;
int viz[MAX_N],dist[MAX_N];
int n,m,x,y,i,a,b,c;
int main()
{
    ifstream f("sate.in");
    ofstream g("sate.out");
    f>>n>>m>>x>>y;
    for(i=0;i<m;i++){
        f>>a>>b>>c;
        v[a].push_back(make_pair(b,c));
        v[b].push_back(make_pair(a,c));
    }

    coada.push(x);
    viz[x]=1;

    //cout<<v[1][0].first;
    while(!coada.empty()){
        int el=coada.front();
        for(i=0;i<v[el].size();i++){
            if(viz[v[el][i].first]==0){
                if(v[el][i].first>el)
                    dist[v[el][i].first]=dist[el]+v[el][i].second;
                else
                    dist[v[el][i].first]=dist[el]-v[el][i].second;
                viz[v[el][i].first]=1;
                coada.push(v[el][i].first);
      //          if(v[el][i].first==y)
        //            cout<<dist[y];
                    //g<<dist;
            }
        }
        coada.pop();
    }
    g<<dist[y];
    //cout<<dist[5];

    return 0;
}