Pagini recente » Cod sursa (job #304232) | Cod sursa (job #483460) | Cod sursa (job #2005827) | Cod sursa (job #2005431) | Cod sursa (job #2805983)
#include <bits/stdc++.h>
using namespace std;
/**
{1}
*/
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;
}