Pagini recente » Statistici Mihnea Rontescu (Evrika12) | Cod sursa (job #1146376) | Cod sursa (job #1105046) | Cod sursa (job #1387934) | Cod sursa (job #359447)
Cod sursa(job #359447)
#include<fstream.h>
ifstream f("sate.in");
ofstream g("sate.out");
struct orase
{
int o,d;
} *a[30002];
int nr[30002],c[2][30002],u,p,d,x,y,i,j,z,n,m,viz[30002];
int main(){
f>>n>>m>>x>>y;
for(i=1;i<=m;i++){
f>>x>>y>>d;
nr[x]++;
nr[y]++;
}
f.close();
ifstream f("sate.in");
f>>n>>m>>x>>y;
for(i=1;i<=n;i++)
{ a[i]=new orase[nr[i]+1];
a[i][0].d=0;
}
for(i=1;i<=m;i++){
f>>z>>j>>d;
a[z][0].d++;
a[z][a[z][0].d].o=j;
a[z][a[z][0].d].d=d;
a[j][0].d++;
a[j][a[j][0].d].o=z;
a[j][a[j][0].d].d=d;
}
f.close();
/*for(i=1;i<=n;i++)
{
for(j=1;j<=a[i][0].d;j++)
cout<<a[i][j].o<<" ";
cout<<'\n';
} */
u=1;p=1; c[0][p]=x; viz[x]=1;
for(i=1;i<=a[x][0].d;i++)
{u++;
c[0][u]=a[x][i].o;
c[1][u]=a[x][i].d;
}
p++;
while(p<=u){
for(i=1;i<=a[c[0][p]][0].d;i++)
if(viz[a[c[0][p]][i].o]==0){
viz[a[c[0][p]][i].o]==1;
if(a[c[0][p]][i].o<x&&c[0][p]<a[c[0][p]][i].o)
{ u++; c[0][u]=a[c[0][p]][i].o;
c[1][u]=c[1][p]-a[c[0][p]][i].d;
}
else if(c[0][p]<x&&a[c[0][p]][i].o>x)
{ u++; c[0][u]=a[c[0][p]][i].o;
c[1][u]=a[c[0][p]][i].d-c[1][p];
}
else if(x<c[0][p]&&c[0][p]<a[c[0][p]][i].o)
{ u++; c[0][u]=a[c[0][p]][i].o;
c[1][u]=c[1][p]+a[c[0][p]][i].d;}
else if(a[c[0][p]][i].o<c[0][p]&&c[0][p]<x)
{ u++; c[0][u]=a[c[0][p]][i].o;
c[1][u]=c[1][p]+a[c[0][p]][i].d;}
else if(a[c[0][p]][i].o>x&&c[0][p]>a[c[0][p]][i].o)
{ u++; c[0][u]=a[c[0][p]][i].o;
c[1][u]=c[1][p]-a[c[0][p]][i].d;
}}
if(c[0][u]==y)
break;
p++;
}
g<<c[1][u];
return 0;
}