Cod sursa(job #558878)

Utilizator alex@ndraAlexandra alex@ndra Data 17 martie 2011 14:48:30
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
//Sate

#include<fstream>
#include<vector>
#include<iostream>
using namespace std;

#define Nmax 30001

vector<int> G[Nmax];
vector<int> D[Nmax];
int viz[Nmax], n, x, y,c[Nmax], cost[Nmax];


void citire()
{
     int i, m, a, b, c;
  ifstream f("sate.in");
    f>>n>>m>>x>>y;
    
    for(i=1;i<=m;i++)
      {
        f>>a>>b>>c;
        G[a].push_back(b);
        D[a].push_back(c);
        G[b].push_back(a);
        D[b].push_back(-c);
      }
  f.close();
 }

void bfs(int nod)
{
     cost[nod]=1;
     int li=1,ls=1, vec, i;
     c[li]=nod;
     
     
     while(c[li]!=y)
     {
        vec=G[c[li]].size();
        
        for(i=0;i<vec;i++)
          if(!cost[G[c[li]][i]])
           {
             ls++;
             c[ls]=G[c[li]][i];
             cost[G[c[li]][i]]=cost[c[li]]+D[c[li]][i];
             }
        li++;
      }
}

int main()
{
    int i;
    citire();
    bfs(x);
    
    /*for(i=1;i<=n;i++)
       cout<<cost[i]<<" ";
    system("pause");
    */
    ofstream g("sate.out");
      g<<cost[y]-1;
    g.close();
    
    return 0;
}