3160 2023. 02. 21 11:21:25 TuruTamas Hírvivők csoportosítása (40) cpp17 Wrong answer 6/40 17ms 4700 KiB
#include <bits/stdc++.h>
using namespace std;

int N, M, H, K;
vector<bool> been;
vector<pair<int, int>> hirek;

void dfs(int& d, int loc) {
    been[loc] = true;
    for (size_t i = 0; i < hirek.size(); i++)
    {
        if (i == loc || been[i]) continue;
        if (abs(hirek[i].first - hirek[loc].first) + abs(hirek[i].second - hirek[loc].second) <= d) dfs(d, i);
    }
}

void getGroups(int& csoportok, int n) {
    csoportok = 0;
    been.assign(H, false);
    for (size_t i = 0; i < H; i++)
    {
        if (been[i]) continue;
        csoportok++;
        dfs(n, i);
    }
}

int main() {
    cin >> N >> M >> H >> K;
    int x, y;
    for (size_t i = 0; i < H; i++)
    {
        cin >> x >> y;
        hirek.push_back({x, y});
    }
    int csoportok, minn = 0, maxn = N+M, n = (N+M)/2;
    int lastn = n;
    while (true) {
        int csoportok;
        getGroups(csoportok, n);
        if (csoportok > K) {
            minn = n;
            n = (n+maxn)/2;
            if (n == lastn) {
                for (size_t i = n; i < N+M; i++)
                {
                    getGroups(csoportok, i);
                    if (csoportok < K) {
                        cout << i;
                        return 0;
                    }
                }
            }
            
            lastn = n;
        }
        else if (csoportok < K) {
            maxn = n;
            n = (n+minn)/2;
            if (n == lastn) {
                cout << n;
                return 0;
            }
            lastn = n;
        }
        else {
            cout << n << "\n";
            return 0;
        }
    }
}
Subtask Sum Test Verdict Time Memory
base 6/40
1 Wrong answer 0/0 3ms 1752 KiB
2 Accepted 0/0 17ms 2076 KiB
3 Accepted 1/1 3ms 2124 KiB
4 Accepted 1/1 3ms 2340 KiB
5 Wrong answer 0/1 3ms 2588 KiB
6 Wrong answer 0/1 4ms 2804 KiB
7 Wrong answer 0/1 3ms 2976 KiB
8 Wrong answer 0/1 3ms 3188 KiB
9 Wrong answer 0/1 3ms 3400 KiB
10 Accepted 1/1 6ms 3648 KiB
11 Wrong answer 0/1 4ms 3860 KiB
12 Wrong answer 0/1 4ms 3944 KiB
13 Wrong answer 0/3 14ms 3972 KiB
14 Wrong answer 0/3 13ms 3968 KiB
15 Wrong answer 0/3 4ms 3948 KiB
16 Wrong answer 0/3 13ms 4200 KiB
17 Wrong answer 0/3 4ms 4160 KiB
18 Wrong answer 0/3 10ms 4232 KiB
19 Wrong answer 0/3 10ms 4300 KiB
20 Wrong answer 0/3 14ms 4232 KiB
21 Accepted 3/3 10ms 4484 KiB
22 Wrong answer 0/3 4ms 4700 KiB