Pagini recente » Cod sursa (job #353707) | Cod sursa (job #943213) | Cod sursa (job #1512562) | Cod sursa (job #2225148) | Cod sursa (job #191343)
Cod sursa(job #191343)
#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;
}