Pagini recente » Cod sursa (job #1975711) | Cod sursa (job #2988389) | Cod sursa (job #762504) | Cod sursa (job #1088520) | Cod sursa (job #7102)
Cod sursa(job #7102)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define nm 15100
#define mm 30100
struct muchie
{
int x, y, c;
};
int comp(muchie a, muchie b)
{
return a.c < b.c;
}
int n, m, k, r[nm], vx[nm], vy[nm], sol[nm];
muchie a[mm];
int f(int x)
{
if (r[r[x]] != r[x])
r[x] = f(r[x]);
return r[x];
}
int main()
{
int i, j;
freopen("radiatie.in", "r", stdin);
freopen("radiatie.out", "w", stdout);
scanf("%d%d%d", &n, &m, &k);
for (i = 1; i <= m; ++i)
scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].c);
for (i = 1; i <= k; ++i)
scanf("%d%d", &vx[i], &vy[i]);
sort(a + 1, a + m + 1, comp);
for (i = 1; i <= n; ++i)
r[i] = i;
for (i = 1; i <= m; ++i)
{
if (f(a[i].x) != f(a[i].y))
r[r[a[i].x]] = r[a[i].y];
for (j = 1; j <= k; ++j)
if (!sol[j] && f(vx[j]) == f(vy[j]))
sol[j] = a[i].c;
}
for (i = 1; i <= k; ++i)
printf("%d\n", sol[i]);
return 0;
}