Pagini recente » Cod sursa (job #1064451) | Cod sursa (job #2597378) | Cod sursa (job #2113036) | Cod sursa (job #1073862) | Cod sursa (job #2933505)
#include <bits/stdc++.h>
using namespace std;
ifstream fi("sate.in");
ofstream fo("sate.out");
int n, m, x, y;
bool vizi[30001];
bool stop;
vector<vector<pair<int,int>>> adi;
void citire() {
fi >> n >> m >> x >> y;
int a, b, c;
for(int i = 0; i <= n; i++) {
adi.push_back({});
}
for(int i = 1; i <= m; i++) {
fi >> a >> b >> c;
adi[a].push_back({b,c});
adi[b].push_back({a,c});
}
}
void dfs(int nod, int dist) {
if(stop)
return;
if(nod == y) {
fo << dist;
stop = true;
}
vizi[nod] = true;
for(int i = 0; i < adi[nod].size(); i++) {
int nou = adi[nod][i].first;
if(!vizi[nou]) {
if(nou < nod)
dfs(nou, dist - adi[nod][i].second);
else {
dfs(nou, dist + adi[nod][i].second);
}
}
}
}
int main() {
stop = false;
citire();
dfs(x, 0);
return 0;
}