Pagini recente » Cod sursa (job #1044847) | Cod sursa (job #2572357) | Cod sursa (job #1085645) | Cod sursa (job #604091) | Cod sursa (job #833637)
Cod sursa(job #833637)
#include<fstream>
#include<bitset>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int nr,viz[100001],k,n,m,x,y,K,t,mm[20001][20001],s1,s2,D;
struct nod
{
int inf;
nod *adr;
}*l[100001];
int ab(int b)
{
if(b<0)
return -b;
return b;
}
void create(int i,int j)
{
nod *c=new nod;
c->inf=j;
c->adr=l[i];
l[i]=c;
}
void dfs(int a)
{
nod *c=l[a];
viz[a]=1;
for(;c&&!K;c=c->adr)
if(!viz[c->inf])
{
t=-1;
if((c->inf)>a)
t=1;
D+=t*mm[(c->inf)][a];
viz[c->inf]=1;
if(c->inf==s2)
{
K=1;
return ;
}
dfs(c->inf);
D-=t*mm[c->inf][a];
}
}
int main ()
{
f>>n>>m>>s1>>s2;
for(k=1;k<=m;++k)
{
f>>x>>y>>mm[x][y];
mm[y][x]=mm[x][y];
create(x,y);
create(y,x);
}
dfs(s1);
g<<ab(D);
return 0;
}