Pagini recente » Cod sursa (job #1653568) | Rating Athauf (athauf) | Cod sursa (job #545630) | Cod sursa (job #1576124) | Cod sursa (job #1168279)
#include <fstream>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
struct nod
{
long info,d;
nod *next;
};
long viz[30001],n,m,x,y;
nod *v[30001],*p;
void citire()
{
long a,b,di,i;
in >> n >> m >> x >> y;
for(i = 1 ; i <= m ; i++)
{
in >> a >> b >> di;
p = new nod;
p->info = a;
p->d = di;
p->next = v[b];
v[b] = p;
p = new nod;
p->info = b;
p->d = di;
p->next = v[a];
v[a] = p;
}
}
void df(int st,int di)
{
nod *p;
if(st == y)
{
out << di;
return;
}
viz[st] = 1;
for(p = v[st] ; p != NULL ; p = p->next)
{
if(!viz[p->info])
{
if(p->info < st)
{
di = di - p->d;
df(p->info,di);
di = di + p->d;
}
else
{
di = di + p->d;
df(p->info,di);
di = di - p->d;
}
}
}
}
int main()
{
citire();
if(y < x)
{
int k = x;
x = y;
y = k;
}
df(x,0);
return 0;
}