Pagini recente » Cod sursa (job #1633540) | Cod sursa (job #1104856) | Cod sursa (job #541690) | Cod sursa (job #2003804) | Cod sursa (job #828375)
Cod sursa(job #828375)
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#define x first
#define y second
using namespace std;
int n,m,aa,bb,k,e,f,ok=1,aux,l=0;
vector< pair<int, int> > a[30004];
queue<int> Q;
void cit()
{freopen("sate.in","rt",stdin);
freopen("sate.out","wt",stdout);
scanf("%d%d%d%d",&n,&m,&aa,&bb);
for(register int i=1;i<=m;i++)
{scanf("%d%d%d",&k,&e,&f);
a[k].push_back(make_pair(e,f));
a[e].push_back(make_pair(k,f));
}
}
int main()
{cit();
Q.push(aa);
while(!Q.empty() && ok)
{aux=Q.front();
for(unsigned int i=0;i<a[aux].size() && ok;++i)
{if(a[aux][i].x != aa && aux!=bb)
{if(Q.front()>a[aux][i].x) l-=a[aux][i].y;
else l+=a[aux][i].y;
Q.push(a[aux][i].x);
}
if(aux==bb) ok=0;
}
aa=Q.front(); Q.pop();
}
if(ok && !Q.empty()) printf("0\n");
else printf("%d\n",l);
return 0;
}