Cod sursa(job #191343)

Utilizator katakunaCazacu Alexandru katakuna Data 26 mai 2008 09:44:32
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>

struct nod{int inf;nod *urm;int d;}*v[31000];

int viz[31000],D[31000],n,m,x,y,a,b,c,i;



void parc(int x){
viz[x]=1;
nod *p;


  for(p=v[x];p!=NULL;p=p->urm){

   if(!viz[p->inf]){

    if(p->inf>x)
    D[p->inf]=D[x]+p->d;

    else
    D[p->inf]=D[x]-p->d;


   parc(p->inf);
   }


  }


  /*for(p=t[x];p!=NULL;p=p->urm){


  }*/

}



int main(){


FILE *f=fopen("sate.in","r");

fscanf(f,"%d %d",&n,&m);
fscanf(f,"%d %d",&x,&y);


  for(i=1;i<=m;i++){
  fscanf(f,"%d %d %d",&a,&b,&c);

  nod *p=new nod;
  p->urm=v[a];
  p->inf=b;
  p->d=c;
  v[a]=p;

  nod *q=new nod;

  q->urm=v[b];
  q->inf=a;
  q->d=c;
  v[b]=q;


  /*nod *q=new nod;
  q->urm=t[b];
  q->inf=a;
  q->d=c;
  t[b]=q;
  */
  }


fclose(f);


parc(x);


FILE *g=fopen("sate.out","w");
fprintf(g,"%d",D[y]);
fclose(g);


return 0;
}