Cod sursa(job #1106872)

Utilizator ion824Ion Ureche ion824 Data 13 februarie 2014 12:10:55
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
using namespace std;
typedef struct lnod{
        int vf,cost;
        lnod *next;
        }*Nod;
Nod a[30002];
bool viz[30002];
int Q[30002];
long long C[30002];

void add(int x,int y,int c){
     Nod p = new lnod;
     p->vf=y;
     p->next=a[x];
     p->cost=c;
     a[x]=p;
     }
     
int main(){
    ifstream cin("sate.in");
    ofstream cout("sate.out");
    int N,M,X,Y,i,t,vf,c,nod;
    
    cin>>N>>M>>X>>Y;
    for(i=1;i<=M;++i){
      cin>>t>>vf>>c;
      add(t,vf,c);                  
      add(vf,t,-c);                   
    }
    
    vf=1; Q[1]=X; viz[X]=1;
    
    for(i=1;i<=vf;++i){
      nod=Q[i];
      for(Nod p=a[nod];p;p=p->next)
        if(!viz[p->vf])
        {
          viz[p->vf]=1;
          Q[++vf]=p->vf;
          C[p->vf]=C[nod]+(p->cost);               
        }              
      if(viz[Y]){ cout<<C[Y]<<'\n'; return 0; }                    
    }
    
 return 0;   
}