Pagini recente » Cod sursa (job #1263445) | Cod sursa (job #2331469) | Cod sursa (job #1285116) | Cod sursa (job #2083370) | Cod sursa (job #2829403)
#include <bits/stdc++.h>
#define DIM 30005
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n, m, s, d, drum[DIM];
vector <pair <int, int>> edges[DIM];
bitset <DIM> v;
queue <int> q;
int main()
{
f >> n >> m >> s >> d;
if (s > d)
swap(s, d);
for (int i = 1; i <= m; i++)
{
int x, y, cost;
f >> x >> y >> cost;
if (x > y)
cost = -cost;
edges[x].push_back(make_pair(y, cost));
edges[y].push_back(make_pair(x, -cost));
}
v[s] = 1;
q.push(s);
while (!q.empty())
{
int nod = q.front();
q.pop();
for (auto child : edges[nod])
{
if (!v[child.first])
{
v[child.first] = 1;
drum[child.first] = drum[nod] + child.second;
if (child.first == d)
{
g << drum[child.first];
return 0;
}
q.push(child.first);
}
}
}
return 0;
}