3165 | 2023. 02. 21 12:01:43 | renn | Hírvivők csoportosítása (40) | cpp17 | Időlimit túllépés 4/40 | 476ms | 8352 KiB |
#include <bits/stdc++.h>
using namespace std;
#define GOTTAGOFAST cin.tie(0); ios::sync_with_stdio(0);
int cnt;
inline bool megold(vector<vector<int>> &graf, int cl, int &k, vector<bool> &volt)
{
fill(volt.begin(), volt.end(), false);
cnt = 0;
queue<int> next;
for(int i = 0; i < graf.size(); ++i)
{
if(volt[i]) continue;
cnt++;
next.push(i);
while(!next.empty())
{
volt.at(next.front()) = true;
for(int j = 0; j < graf.size(); ++j)
{
if(volt[j] || graf.at(next.front()).at(j) == -1) continue;
if(graf.at(next.front()).at(j) < cl)
{
next.push(j);
}
}
next.pop();
}
}
return cnt <= k;
}
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 = INT_MAX, right = -1, mid;
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < n; j++)
{
if(i == j || graf.at(i).at(j) != -1) continue;
graf.at(i).at(j) = abs(pontok.at(i).first-pontok.at(j).first)+abs(pontok.at(i).second-pontok.at(j).second);
left = min(graf.at(i).at(j), left);
right = max(graf.at(i).at(j), right);
}
}
while(left < right)
{
mid = left+(right-left)/2;
if(megold(graf, mid, k, volt))
{
right = mid-1;
}
else
{
left = mid+1;
}
}
cout << right << "\n";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 4/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1832 KiB | |||
2 | Időlimit túllépés | 0/0 | 467ms | 4180 KiB | |||
3 | Hibás válasz | 0/1 | 12ms | 2476 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2336 KiB | |||
5 | Elfogadva | 1/1 | 282ms | 3116 KiB | |||
6 | Időlimit túllépés | 0/1 | 458ms | 6316 KiB | |||
7 | Időlimit túllépés | 0/1 | 451ms | 3960 KiB | |||
8 | Elfogadva | 1/1 | 29ms | 3212 KiB | |||
9 | Hibás válasz | 0/1 | 17ms | 3232 KiB | |||
10 | Elfogadva | 1/1 | 111ms | 3968 KiB | |||
11 | Hibás válasz | 0/1 | 238ms | 4104 KiB | |||
12 | Időlimit túllépés | 0/1 | 470ms | 8352 KiB | |||
13 | Időlimit túllépés | 0/3 | 463ms | 4636 KiB | |||
14 | Időlimit túllépés | 0/3 | 476ms | 4300 KiB | |||
15 | Időlimit túllépés | 0/3 | 467ms | 5320 KiB | |||
16 | Időlimit túllépés | 0/3 | 451ms | 5284 KiB | |||
17 | Időlimit túllépés | 0/3 | 451ms | 5480 KiB | |||
18 | Időlimit túllépés | 0/3 | 439ms | 6580 KiB | |||
19 | Időlimit túllépés | 0/3 | 463ms | 5044 KiB | |||
20 | Időlimit túllépés | 0/3 | 467ms | 5344 KiB | |||
21 | Időlimit túllépés | 0/3 | 456ms | 4872 KiB | |||
22 | Időlimit túllépés | 0/3 | 453ms | 4912 KiB |