3166 2023. 02. 21 12:16:29 renn Hírvivők csoportosítása (40) cpp17 Hibás válasz 0/40 21ms 6084 KiB
#include <bits/stdc++.h>
using namespace std;

#define GOTTAGOFAST cin.tie(0); ios::sync_with_stdio(0);

int cnt;
void bfs(int c, int &n, int &cl, int &k, vector<bool> &volt, vector<pair<int, int>> &pontok);

bool megold(int n, int cl, int &k, vector<bool> &volt, vector<pair<int, int>> &pontok)
{
    fill(volt.begin(), volt.end(), false);
    
    cnt = 1;

    for (size_t i = 0; i < n; i++)
    {
        if(volt[i]) continue;
        cnt++;
        bfs(0, n, cl, k, volt, pontok);
    }

    return cnt <= k;
}

void bfs(int c, int &n, int &cl, int &k, vector<bool> &volt, vector<pair<int, int>> &pontok)
{
    
    volt[c] = true;
    for(int i = 0; i < n; i++)
    {
        if(volt[i] || i == c) continue;
        if(abs(pontok.at(c).first-pontok.at(i).first)+abs(pontok.at(c).second-pontok.at(i).second) <= cl)
        {
            bfs(i, n, cl, k, volt, pontok);
            continue;
        }
    }
}

int main()
{

    GOTTAGOFAST

    int x, y, n, k;
    cin >> x >> y >> n >> k;

    vector<vector<int>> graf(n, vector<int>(n, -1));
    vector<pair<int, int>> pontok(n);
    vector<bool> volt(n);
    int a, b;
    for (size_t i = 0; i < n; i++)
    {
        cin >> a >> b;
        pontok.at(i) = {a, b};
    }

    int left = 1, right = 1000001, mid;
    
    while(left < right)
    {
        mid = left+(right-left)/2;

        if(megold(n, mid, k, volt, pontok))
        {
            right = mid-1;
        }
        else
        {
            left = mid+1;
        }
    }

    cout << (right-1) << "\n";

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 0/40
1 Elfogadva 0/0 3ms 1824 KiB
2 Hibás válasz 0/0 18ms 3484 KiB
3 Hibás válasz 0/1 3ms 2476 KiB
4 Hibás válasz 0/1 3ms 2524 KiB
5 Hibás válasz 0/1 4ms 3152 KiB
6 Hibás válasz 0/1 6ms 3256 KiB
7 Hibás válasz 0/1 3ms 2888 KiB
8 Hibás válasz 0/1 4ms 3144 KiB
9 Hibás válasz 0/1 4ms 3356 KiB
10 Hibás válasz 0/1 6ms 3760 KiB
11 Hibás válasz 0/1 6ms 3940 KiB
12 Hibás válasz 0/1 6ms 3876 KiB
13 Hibás válasz 0/3 21ms 5696 KiB
14 Hibás válasz 0/3 20ms 5552 KiB
15 Hibás válasz 0/3 17ms 5552 KiB
16 Hibás válasz 0/3 19ms 5772 KiB
17 Hibás válasz 0/3 17ms 5628 KiB
18 Hibás válasz 0/3 19ms 5708 KiB
19 Hibás válasz 0/3 21ms 5696 KiB
20 Hibás válasz 0/3 19ms 5696 KiB
21 Hibás válasz 0/3 19ms 5824 KiB
22 Hibás válasz 0/3 17ms 6084 KiB