Pagini recente » Cod sursa (job #1943440) | Cod sursa (job #606735)
Cod sursa(job #606735)
#include<iostream>
#include<fstream>
#include<vector>
#define N 30010
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
int n,m,xx,y,q[3*N],p=1,u,x[N];
vector< pair<int,int> > g[N];
void bf() {
int i;
q[++u]=xx;
while(p<=u) {
for(i=0;i!=g[q[p]].size();++i)
if(x[g[q[p]][i].first]==-1) {
x[g[q[p]][i].first] = x[q[p]] + g[q[p]][i].second;
if(g[q[p]][i].first==y)
return;
q[++u] = g[q[p]][i].first;
}
++p;
}
}
int main() {
int i,a,b,c;
in >> n >> m >> xx >> y;
for(i=1;i<=m;++i) {
in >> a >> b >> c;
g[a].push_back(make_pair<int,int>(b,c));
g[b].push_back(make_pair<int,int>(a,-c));
}
for(i=1;i<=n;++i)
x[i]=-1;
x[xx]=0;
bf();
out << x[y];
return 0;
}