Pagini recente » Cod sursa (job #2301156) | Cod sursa (job #159443) | Cod sursa (job #340597) | Cod sursa (job #1897701) | Cod sursa (job #1167963)
#include <fstream>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
struct nod
{
int info,d;
nod *next;
};
int viz[30001],n,m,x,y;
nod *v[30001],*p;
void citire()
{
int 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 nod,int di)
{
if(nod == y)
{
out << di;
return;
}
viz[nod] = 1;
for(p = v[nod] ; p != NULL ; p = p->next)
{
if(!viz[p->info])
{
if(p->info < nod)
{
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();
df(x,0);
return 0;
}