Cod sursa(job #1163742)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 1 aprilie 2014 16:44:03
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
  int n,m,dp[30005],dist[30005],li,lf;
  vector <int> v[30005],c[30005];
  queue <int> q;
 void BFS()
  { int i,nod;
      while(!q.empty())
      { nod=q.front(); q.pop();
        for(i=0;i<v[nod].size();i++)
           if (!dp[v[nod][i]])
            { dp[v[nod][i]]=dp[nod]+1;
              dist[v[nod][i]]=dist[nod]+c[nod][i];
              q.push(v[nod][i]);
              if (v[nod][i]==lf) return;
            }
      }
  }

int main()
{ int i,x,y,d;
    f>>n>>m>>li>>lf;
   if (li!=lf)
     {
     for(i=1;i<=m;i++)
      { f>>x>>y>>d;
         v[x].push_back(y);
         c[x].push_back(d);
         v[y].push_back(x);
         c[y].push_back(-d);
      }

    q.push(li); dp[li]=1;

     BFS();
     }
  g<<dist[lf];

    return 0;
}