Pagini recente » Cod sursa (job #365462) | Cod sursa (job #1580615) | Cod sursa (job #588073) | Cod sursa (job #2356080) | Cod sursa (job #3188886)
#include <fstream>
#include <vector>
#include <deque>
#define DIM 30001
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,a,b,x,y,c,d[DIM];
vector<pair<int,int>> l[DIM];
deque<int> q;
void bfs(int p) {
q.push_back(p);
d[p]=0;
while (!q.empty()) {
int nod=q.front();
q.pop_front();
for (int i=0;i<l[nod].size();i++) {
int vec=l[nod][i].first;
int cost=l[nod][i].second;
if (d[vec]==-1) {
if (vec>nod)
d[vec]=d[nod]+cost;
else
d[vec]=d[nod]-cost;
q.push_back(vec);
}
}
}
}
int main() {
fin>>n>>m>>a>>b;
while (m--) {
fin>>x>>y>>c;
l[x].push_back({y,c});
l[y].push_back({x,c});
}
for (int i=1;i<=n;i++)
d[i]=-1;
bfs(a);
fout<<d[b];
return 0;
}