Cod sursa(job #319033)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 30 mai 2009 12:49:06
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <vector>
#define Nmax 100024
using namespace std;
vector <int> G[Nmax];
vector <long> Cost[Nmax];
long long C;
int coada[Nmax],i,sum,N,M,prim,Y,X,ultim,viz[Nmax],drum[Nmax],poz;
int BFS(int x)
{ viz[x]=-1;
  coada[0]=x;
  while(prim<=ultim && !viz[Y])
  {
   x=coada[prim++];
   for(i=0;i<G[x].size();i++)
      if( !viz[G[x][i]] )
      {
        viz[G[x][i]]=x;
        coada[++ultim]=G[x][i];
        if(coada[ultim-1]<coada[ultim]) sum+=Cost[coada[ultim-1]][i];
        else sum-=Cost[coada[ultim-1]][i];
        
      }
   }
}          
int main()
{int z,y;
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);
    scanf("%d %d %d %d",&N,&M,&X,&Y);
    while(M--)
    {
      scanf("%d %d",&z,&y);
      G[z].push_back(y);
      G[y].push_back(z);
      scanf("%lld",&C);
      Cost[z].push_back(C);
      Cost[y].push_back(C);
    } 
BFS(X);
printf("%d",sum); 
return 0;
}