Pagini recente » Cod sursa (job #1088886) | Cod sursa (job #1643737) | Cod sursa (job #2966678) | Cod sursa (job #810823) | Cod sursa (job #998789)
Cod sursa(job #998789)
# include <iostream>
# include <fstream>
# include <algorithm>
# include <vector>
# include <bitset>
# include <queue>
using namespace std;
# define MAXN 30010
# define MAXM 100034
typedef vector< pair<int, int> > :: iterator iter;
ifstream f("sate.in");
ofstream g("sate.out");
int n, m, x, y;
vector< pair<int, int> > G[MAXN];
bitset<MAXN> viznod;
queue<int> coada;
int dist[MAXN] = {0};
void bfs()
{
viznod[x] = true;
dist[x] = 0;
coada.push(x);
while (!coada.empty()) {
int nd = coada.front();
coada.pop();
for (iter it = G[nd].begin(); it != G[nd].end(); it++) {
if (viznod[it->first] == false) {
viznod[it->first] = true;
coada.push(it->first);
dist[it->first] = dist[nd] + it->second;
}
}
if (dist[y] != 0) {
g << abs(dist[y]);
return;
}
}
}
int main()
{
f >> n >> m >> x >> y;
for (int l = 1; l <= m; l++) {
int i, j, d;
f >> i >> j >> d;
G[i].push_back(make_pair(j, d));
G[j].push_back(make_pair(i, -d));
}
bfs();
return 0;
}