Pagini recente » Cod sursa (job #2604795) | Cod sursa (job #2823598) | Cod sursa (job #2877454) | Cod sursa (job #959558) | Cod sursa (job #2447147)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin ("sate.in");
ofstream fout ("sate.out");
int n, m, x, y, a, b, c, marcat[30005];
vector <int> vecin[30005], cost[30005], q;
int main() {
fin >> n >> m >> x >> y;
for (int i = 1; i <= m; ++i) {
fin >> a >> b >> c;
vecin[a].push_back(b);
cost[a].push_back(c);
vecin[b].push_back(a);
cost[b].push_back(c);
}
int nod;
q.push_back(x);
for (int j = 0; j < q.size(); ++j) {
nod = q[j];
for (int i = 0; i < vecin[nod].size(); ++i) {
b = vecin[nod][i];
c = cost[nod][i];
if (marcat[b])
continue;
if (b < nod)
marcat[b] = marcat[nod] - c;
else marcat[b] = marcat[nod] + c;
q.push_back(b);
if (b == y) {
fout << marcat[b];
return 0;
}
}
}
return 0;
}