Pagini recente » Cod sursa (job #2442395) | Cod sursa (job #1039962) | Cod sursa (job #1117401) | Cod sursa (job #3193176) | Cod sursa (job #2941875)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("sate.in");
ofstream out ("sate.out");
int d[30001];
bitset<30001>vis;
vector<pair<int, int>>v[30001];
int main()
{
int n, m, x, y;
in >> n >> m >> x >> y;
while (m--)
{
int p, q, c;
in >> p >> q >> c;
v[p].push_back({q, c});
v[q].push_back({p, c});
}
d[x] = 0;
vis[x] = true;
queue<int>q;
q.push(x);
while (!q.empty())
{
x = q.front();
q.pop();
for (auto p : v[x])
{
int i = p.first;
if (!vis[i])
{
q.push(i);
vis[i] = true;
d[i] = d[x] - p.second * (i < x? 1 : -1);
}
}
}
out << d[y];
return 0;
}