Cod sursa(job #1082555)

Utilizator Dayanna000Amegica Dayanna Dayanna000 Data 14 ianuarie 2014 19:30:58
Problema Sate Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 1 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
vector < pair < int, int> > dist[30001];
queue <int> Q;
bool marc[30001];
int suma[30001];
void bfs(int nod)
  {
      Q.push(nod);
      marc[nod]=1;
      while(!Q.empty())
        {
            int huh=Q.front();
            for(int ji=0;ji<dist[huh].size();++ji)
                if(marc[dist[huh][ji].first]==0)
                 {
                     Q.push(dist[huh][ji].first);
                     marc[dist[huh][ji].first]=1;
                     suma[dist[huh][ji].first]=suma[huh]+dist[huh][ji].second;
                 }
            Q.pop();
        }
  }
int main()
{
    ifstream f("sate.in");
    ofstream g("sate.out");
    int n,m,x,y,i,nod1,nod2,km;
    f>>n>>m>>x>>y;
    for(i=1;i<=m;++i)
      {
          f>>nod1>>nod2>>km;
          dist[nod1].push_back(make_pair(nod2,km));
          dist[nod2].push_back(make_pair(nod1,-km));
      }
    bfs(x);
    g<<suma[y];
    f.close();
    g.close();
    return 0;
}