Pagini recente » Cod sursa (job #986938) | Cod sursa (job #2077956) | Cod sursa (job #1063658) | Cod sursa (job #3040690) | Cod sursa (job #2861894)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("sate.in");
ofstream out ("sate.out");
bool viz[100001];
int dist[100001];
vector <pair <int, int> > v[100001];
vector <int> ans;
void bfs (int start)
{
queue <int> q;
q.push(start);
viz[start] = 1;
while (!q.empty())
{
int nod = q.front();
q.pop();
for (auto vecin:v[nod])
{
if (!viz[vecin.first])
{
viz[vecin.first] = true;
if (vecin.first > nod)
dist[vecin.first] = dist[nod] + vecin.second;
else
dist[vecin.first] = dist[nod] - vecin.second;
q.push(vecin.first);
}
}
}
}
void solve ()
{
int n, m, x, y;
in >> n >> m >> x >> y;
for (int i = 1;i<=m;++i)
{
int a, b, c;
in >> a >> b >> c;
v[a].push_back({b,c});
v[b].push_back({a,c});
}
bfs(x);
out << dist[y] << '\n';
return;
}
int main ()
{
int t = 1;
// cin >> t;
while (t--)
solve();
}