Pagini recente » Cod sursa (job #1596021) | Cod sursa (job #2382261) | Cod sursa (job #2336759) | Cod sursa (job #1001081) | Cod sursa (job #2551889)
#include <fstream>
using namespace std;
ifstream fin ("sate.in");
ofstream fout ("sate.out");
struct Nod {
int et, cost;
Nod *adr;
} *L[30005];
int n, m, X, Y, x, y, c;
int marcat[30005];
void dfs(int nod) {
for (Nod *a = L[nod]; a != NULL; a = a -> adr) {
if (marcat[a -> et] || a -> et == X)
continue;
marcat[a -> et] = marcat[nod] + a -> cost;
dfs(a -> et);
if (a -> et == Y) {
fout << marcat[a -> et];
exit(0);
}
}
}
int main() {
ios_base::sync_with_stdio(0);
fin.tie(0);
fout.tie(0);
fin >> n >> m >> X >> Y;
for (int i = 1; i <= m; ++i) {
fin >> x >> y >> c;
Nod *p = new Nod;
p -> et = y;
p -> cost = c;
p -> adr = L[x];
L[x] = p;
p = new Nod;
p -> et = x;
p -> cost = - c;
p -> adr = L[y];
L[y] = p;
}
dfs(X);
return 0;
}