Pagini recente » Cod sursa (job #2303514) | Cod sursa (job #1813844) | Istoria paginii runda/cls11_round1/clasament | Cod sursa (job #1731727) | Cod sursa (job #2308472)
#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
int n,m,x,y;
bool V[30010];
vector <pair<int,int> > A[30010];
ifstream fin("sate.in");
ofstream fout("sate.in");
int BFS(int x, int y){
queue <pair<int,int> > q;
q.push({x,0});
int pn=0,s=0;
while(!q.empty()){
int cn=q.front().F;
if(cn<pn)s-=q.front().S;
else s+=q.front().S;
if(cn==y)return s;
for(int i=0;i<A[cn].size();i++){
if(!V[A[cn][i].F])q.push({A[cn][i].F,A[cn][i].S});
}
V[cn]=1;
q.pop();
pn=cn;
}
}
int main(){
fin>>n>>m>>x>>y;
memset(V,0,n);
for(int i=0;i<m;i++){
int xc,yc,vc;
cin>>xc>>yc>>vc;
A[xc].push_back({yc,vc});
A[yc].push_back({xc,vc});
}
fout<<BFS(x,y);
return 0;
}