Cod sursa(job #1319265)

Utilizator BaltaretuAndreiBaltaretu Andrei BaltaretuAndrei Data 16 ianuarie 2015 20:18:42
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <vector>
#include <utility>

using namespace std;

ifstream f("sate.in");
ofstream g("sate.out");

vector < pair<int,int> > v[30001];
vector <int> Q;

int n,m,x,y,i,a,b,d,dist,l;
bool viz[30001];

void bfs(int x,int y)
{
    int i,e;
    while(!Q.empty())
    {
        e=Q.front();
        Q.pop_back();
        for(i=0;i<v[e].size();i++)
        {
                 if(!viz[v[e][i].first])
                 {
                     viz[v[e][i].first]=true;
                     Q.push_back(v[e][i].first);
                     if(e<v[e][i].first)
                     dist+=v[e][i].second;
                     else dist-=v[e][i].second;
                 }
        }
    }
}

int main()
{
    f>>n>>m>>x>>y;
    for(i=1;i<=m;i++)
    {
        f>>a>>b>>d;
        v[a].push_back(make_pair(b,d));
        v[b].push_back(make_pair(a,d));
    }
    Q.push_back(x);
    viz[x]=true;
    bfs(x,y);
    g<<dist;
    return 0;
}