Pagini recente » Cod sursa (job #311560) | Cod sursa (job #2287014) | Cod sursa (job #1626964) | Cod sursa (job #2968188) | Cod sursa (job #343405)
Cod sursa(job #343405)
#include <stdio.h>
#include <vector>
#define Nmax 30005
#define Mmax 100025
using namespace std;
vector<pair <int,int> > A[Nmax];
int USE[Nmax];
int n,m,x,y,i,s1,s2,d;
int Q;
int bf(int x,int rez){
int f;
vector< pair<int,int> >:: iterator it;
for(it=A[x].begin(); it!=A[x].end(); it++){
if(USE[it-> first]==0) {
if( it-> first == y){
rez += it-> second;
Q=rez;
USE[y]=1;
return 0;
}
else{
rez += it-> second;
f = it-> first;
USE[f]=1;
bf(f, rez);
USE[f]=0;
}
}
}
}
int main(){
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&x,&y);
for(i=1;i<=n;++i){
scanf("%d%d%d",&s1,&s2,&d);
A[s1].push_back(make_pair(s2,d));
A[s2].push_back(make_pair(s1,-d));
}
USE[x]=1;
bf(x,0);
printf("%d\n",Q);
fclose(stdin); fclose(stdout);
return 0;
}