Pagini recente » Cod sursa (job #1356682) | Cod sursa (job #2509960) | Cod sursa (job #80915) | Cod sursa (job #913800) | Cod sursa (job #2803634)
#include <bits/stdc++.h>
using namespace std;
/**
*/
vector< pair<int, int> > h[30001];
int viz[30001], n, m, X, Y;
ifstream fin("sate.in");
ofstream fout("sate.out");
int BFS(int k)
{
queue< pair<int, int> > q;
int dist;
q.push({k, 0});
viz[k] = 1;
while (!q.empty())
{
k = q.front().first;
dist = q.front().second;
q.pop();
for (auto e : h[k])
if (viz[e.first] == 0)
{
viz[e.first] = 1;
q.push({e.first, dist + e.second});
if (e.first == Y)
return dist + e.second;
}
}
return 0;
}
int main()
{
int i, j, k, dist, m;
fin >> n >> m >> X >> Y;
for (k = 1; k <= m; k++)
{
fin >> i >> j >> dist;
if (i > j) swap(i, j);
h[i].push_back({j, dist});
h[j].push_back({i, -dist});
}
fout << BFS(X) << "\n";
fout.close();
return 0;
}