Pagini recente » Cod sursa (job #507263) | Cod sursa (job #682004) | Cod sursa (job #2950312) | Cod sursa (job #2917761) | Cod sursa (job #1509540)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,x,y;
long long viz[30001],s;
struct nod
{
int info,dist;
nod *urm;
};nod *prim, *a[30001];
void ADD(nod *&prim, int x,int d)
{
nod *q=new nod;
q->info=x;
q->dist=d;
q->urm=prim;
prim=q;
}
void citire()
{
fin>>n>>m>>x>>y;
int c1,c2,d;
for(int i=1;i<=m;i++)
{
fin>>c1>>c2>>d;
ADD(a[c1],c2,d);
ADD(a[c2],c1,d);
}
}
void DFS(int x)
{
viz[x]=1;
for(nod *p=a[x];p!=0;p=p->urm)
{if(viz[p->info]==0 && viz[y]==0)
{
if(p->info < x) s=s-p->dist;
else s=s+p->dist;
DFS(p->info);
}
if(viz[y]!=0) break;}
}
int main()
{
citire();
DFS(x);
fout<<s<<" ";
return 0;
}