Pagini recente » Cod sursa (job #2448538) | Cod sursa (job #2447151)
#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;
void dfs(int nod) {
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;
if (b == y) {
fout << marcat[b];
exit(0);
}
dfs(b);
}
}
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);
}
dfs(x);
return 0;
}