Pagini recente » Cod sursa (job #2479695) | Cod sursa (job #1547701) | Cod sursa (job #256360) | Cod sursa (job #1341400) | Cod sursa (job #812265)
Cod sursa(job #812265)
#include<fstream>
#include<vector>
#define Nmax 30010
using namespace std;
int i, n, m, x, y, el, cost, p, k, c[Nmax], viz[Nmax], nivel[Nmax], a, b, d, start;
vector <pair <int, int> > muchie[Nmax];
void BFS (int nod)
{
for (i = 1; i <= n; ++i)
viz[i] = 0;
viz[nod] = 1;
k = 1;
p = 1;
c[k] = nod;
while (p <= n)
{
start = c[p];
p++;
for (i = 0; i < muchie[start].size(); ++i)
{
el = muchie[start][i].first;
cost = muchie[start][i].second;
if (!viz[el])
{
viz[el] = 1;
k++;
c[k] = el;
nivel[el] = nivel[start] + cost;
}
}
}
}
int main()
{
ifstream f("sate.in");
ofstream h("sate.out");
f >> n >> m >> x >> y;
for (i = 1; i <= m; ++i)
{
f >> a >> b >> d;
muchie[a].push_back(make_pair(b, d));
muchie[b].push_back(make_pair(a, -d));
}
f.close();
BFS (x);
h << nivel[y] << '\n';
h.close();
return 0;
}