72412024-01-05 10:21:40Error42Hírvivők csoportosítása (40)cpp17Hibás válasz 39/4024ms7868 KiB
#include <algorithm>
#include <iostream>
#include <vector>
#include <tuple>

using namespace std;

struct person {
    int x, y;
};

vector<int> parent;
vector<int> sz;
int components;

int find(int const x) {
    if (parent[x] == -1)
        return x;

    return parent[x] = find(parent[x]);
}

void merge(int const x, int const y) {
    int px = find(x);
    int py = find(y);

    if (px == py)
        return;

    components--;

    if (sz[px] < sz[py])
        swap(px, py);

    parent[py] = px;
    sz[px] += sz[py];
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m, h, k;
    cin >> n >> m >> h >> k;

    vector<person> people(h);
    for (person& p : people)
        cin >> p.x >> p.y;

    vector<pair<int, pair<int, int>>> distances;

    for (int i = 0; i < h - 1; i++) {
        for (int j = i + 1; j < h; j++) {
            distances.push_back({ abs(people[i].x - people[j].x) + abs(people[i].y - people[j].y), { i, j } });
        }
    }

    sort(distances.begin(), distances.end());

    parent.assign(h, -1);
    sz.assign(h, 1);
    components = h;

    for (auto dist : distances) {
        int const d = dist.first;
        int const i = dist.second.first;
        int const j = dist.second.second;

        merge(i, j);

        if (components <= k) {
            cout << d << "\n";
            return 0;
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base39/40
1Elfogadva0/03ms2104 KiB
2Elfogadva0/018ms5364 KiB
3Hibás válasz0/14ms2640 KiB
4Elfogadva1/13ms2644 KiB
5Elfogadva1/16ms3764 KiB
6Elfogadva1/14ms3736 KiB
7Elfogadva1/13ms3444 KiB
8Elfogadva1/13ms3404 KiB
9Elfogadva1/13ms3316 KiB
10Elfogadva1/16ms4236 KiB
11Elfogadva1/16ms4208 KiB
12Elfogadva1/16ms4200 KiB
13Elfogadva3/323ms6492 KiB
14Elfogadva3/323ms6520 KiB
15Elfogadva3/323ms6920 KiB
16Elfogadva3/323ms6888 KiB
17Elfogadva3/324ms7144 KiB
18Elfogadva3/323ms7388 KiB
19Elfogadva3/323ms7496 KiB
20Elfogadva3/323ms7500 KiB
21Elfogadva3/323ms7768 KiB
22Elfogadva3/323ms7868 KiB