Pagini recente » Cod sursa (job #2894997) | Cod sursa (job #2119306) | Istoria paginii runda/boji_round4 | Cod sursa (job #654117) | Cod sursa (job #252612)
Cod sursa(job #252612)
#include<fstream.h>
#define max 100000
ifstream f("sate.in");
ofstream g("sate.out");
long z,fin,ok,cont,p,val[max],xpr,uz[max],vec[max],n,m,s,i,x,y;
typedef struct nod
{
int info,cost;
nod *urm;
} *pNod;
pNod a[max];
void add(pNod &prim,int val,int c)
{
pNod x;
x=new nod;
x->info=val;
x->cost=c;
x->urm=prim;
prim=x;
}
int main()
{
f>>n>>m>>s>>fin;
for(i=1;i<=m;i++)
f>>x>>y>>z,add(a[x],y,z),add(a[y],x,z);
ok=1;
vec[1]=s;
p=1;
uz[vec[1]]=1;
val[vec[1]]=0;
for(i=1;i<=p;i++)
{
pNod prim=a[vec[i]];
while(prim)
{
if(uz[prim->info]==0)
{
vec[++p]=prim->info;
if(vec[p]>vec[i])
val[vec[p]]=val[vec[i]]+prim->cost;
else
val[vec[p]]=val[vec[i]]-prim->cost;
uz[vec[p]]=1;
}
prim=prim->urm;
}
}
g<<val[fin]<<" ";
return 0;
}