Pagini recente » Cod sursa (job #2705419) | Cod sursa (job #1266806) | Cod sursa (job #1104541) | Cod sursa (job #580120) | Cod sursa (job #1700070)
#include<cstdio>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
vector <pair <int,int> > L[100005];
queue <int> coada;
int n,s,viz[100005],mini[100005],val,x,y;
void citire(){
int n1,n2,m,val;
scanf("%d%d%d%d",&n,&m,&x,&y);
for(int i=1;i<=m;i++){
scanf("%d %d %d",&n1,&n2,&val);
L[n1].push_back(make_pair(n2,val));
L[n2].push_back(make_pair(n1,-val));
}
}
void dfs(int s){
coada.push(s);
int primul,nod;
viz[s]=1;
int ok=0;
while(!coada.empty()){
primul=coada.front();
coada.pop();
vector <pair <int,int> >:: iterator it;
for(it=L[primul].begin();it!=L[primul].end();++it){
pair<int,int> nod;
nod=*it;
if(viz[nod.first]==0){
val=val+nod.second;
coada.push(nod.first);
viz[nod.first]=1;
}
}
}
}
int main(){
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
citire();
dfs(x);
printf("%d",val);
return 0;
}