Pagini recente » Cod sursa (job #897710) | Cod sursa (job #1996451) | Cod sursa (job #2737849) | Cod sursa (job #2007830) | Cod sursa (job #1385596)
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 30005
#define inf 20000005
using namespace std;
int n, m, x, y;
int dist[nmax];
vector < pair <int, int> > G[nmax];
void dfs(int nod) {
if (dist[y])
return;
for (vector < pair<int, int> > :: iterator it = G[nod].begin(); it != G[nod].end(); ++it) {
if (!dist[it -> first]) {
dist[it -> first] = dist[nod] + it -> second;
dfs(it -> first);
}
}
}
int main() {
ifstream fin("sate.in");
ofstream fout("sate.out");
fin >> n >> m >> x >> y;
for (int i = 1; i <= m; i++) {
int a, b, c;
fin >> a >> b >> c;
G[a].push_back(make_pair(b, c));
G[b].push_back(make_pair(a, -c));
}
dist[x] = 0;
dfs(x);
fout << dist[y] - dist[x] << "\n";
fin.close();
fout.close();
return 0;
}