Cod sursa(job #885757)

Utilizator oancea_horatiuOancea Horatiu oancea_horatiu Data 22 februarie 2013 12:18:29
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream d("sate.in");
ofstream o("sate.out");
int i,j,k,m,n,t,v[30005],x,y,b,c,cost,costf;
vector <int> a[30005],pc,co[30005];
vector <int>::iterator it,itc;
int main()
  {
    d>>n>>m>>x>>y;
    for (i=1;i<=m;i++)
      {
        d>>b>>c;
        a[b].push_back(c);
        a[c].push_back(b);
        d>>cost;
        co[b].push_back(cost);
        co[c].push_back(-cost);
      };
    //for (i=1;i<=n;i++) v[i]=-1;
    pc.push_back(x);
    v[x]=-1;
    while (v[y]==0)
      {
        b=pc.back();
        pc.pop_back();
        for (it=a[b].begin(), itc=co[b].begin(); it!=a[b].end(); ++it, ++itc)
          if (v[*it]==0)
            {
              v[*it]=v[b]+*itc;
              pc.push_back(*it);
            };
      };
    o<<v[y]+1;
  }