Pagini recente » Cod sursa (job #864959) | Cod sursa (job #2560234) | Cod sursa (job #3181963) | Cod sursa (job #3257801) | Cod sursa (job #2670862)
#include <algorithm>
#include <fstream>
constexpr auto max_n = 250005;
constexpr auto max_m = 500005;
using namespace std;
struct edge
{
int a, b, c;
} edges[max_m];
ifstream fin("pscnv.in");
ofstream fout("pscnv.out");
int n, m, x, y;
int parents[max_n];
int get_parent(const int node)
{
if (parents[node] != node)
parents[node] = get_parent(parents[node]);
return parents[node];
}
int main()
{
fin >> n >> m >> x >> y;
for (auto i = 0; i < m; i++)
fin >> edges[i].a >> edges[i].b >> edges[i].c;
sort(edges, edges + m, [](const edge a, const edge b)
{
return a.c < b.c;
});
for (auto i = 1; i <= n; i++)
parents[i] = i;
for (auto edg : edges)
{
if (get_parent(edg.a) != get_parent(edg.b))
parents[edg.b] = edg.a;
if (get_parent(x) == get_parent(y))
{
fout << edg.c;
return 0;
}
}
return 0;
}