Pagini recente » Cod sursa (job #2027215) | Cod sursa (job #137379) | Cod sursa (job #2341282) | Cod sursa (job #3161557) | Cod sursa (job #3231432)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
struct Sat {
int c = 0;
vector<pair<int, int> > v;
};
int main() {
ifstream f("sate.in");
ofstream g("sate.out");
int n, m, x, y;
f >> n >> m >> x >> y;
vector<Sat> G(n + 1);
queue<int> Q;
Q.emplace(x);
G[x].c = 1;
while (m--) {
int a, b, d;
f >> a >> b >> d;
G[a].v.emplace_back(b, d);
G[b].v.emplace_back(a, d);
}
while (!Q.empty()) {
const auto i = Q.front();
Q.pop();
for (const auto &[j, d]: G[i].v) {
if (!G[j].c) {
G[j].c = G[i].c + (j < i ? -d : d);
Q.emplace(j);
}
}
}
g << G[y].c - 1 << '\n';
}