Pagini recente » Cod sursa (job #2167754) | Cod sursa (job #563170) | Cod sursa (job #1519994) | Cod sursa (job #1627206) | Cod sursa (job #2550767)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 30005;
vector<pair<int, int> >G[MAXN];
int dist[MAXN];
int vis[MAXN];
int main() {
freopen("sate.in", "r", stdin);
freopen("sate.out", "w", stdout);
int n, m, x, y;
scanf("%d%d%d%d", &n, &m, &x, &y);
for (int i = 1; i <= n; ++i) {
int u, v, c;
scanf("%d%d%d", &u, &v, &c);
G[u].push_back({v, c});
G[v].push_back({u, c});
}
queue<int>q;
q.push(x);
vis[1] = 1;
while (!q.empty()) {
int node = q.front();
q.pop();
for (auto it:G[node])
if (vis[it.first] == 0) {
vis[it.first] = 1;
if (it.first > node)
dist[it.first] = dist[node] + it.second;
else
dist[it.first] = dist[node] - it.second;
q.push(it.first);
}
}
printf("%d\n", abs(dist[y]));
return 0;
}