This commit is contained in:
Arthur K. 2025-05-29 19:24:43 +03:00
commit 810a9654a4
Signed by: wzray
GPG key ID: B97F30FDC4636357
50 changed files with 4450 additions and 0 deletions

54
3/G.cpp Normal file
View file

@ -0,0 +1,54 @@
#include <iostream>
class BinarySearch {
private:
int n;
int k;
int* arr;
bool IsValid(int target) {
int chairs = 1;
int last_chair = arr[0];
for (int i = 0; i < n; ++i) {
if (arr[i] - last_chair >= target) {
++chairs;
last_chair = arr[i];
}
}
return chairs >= k;
}
public:
BinarySearch(int n, int k, int* arr) : n(n), k(k), arr(arr) { }
int Search() {
int left = 0;
int right = arr[n - 1] - arr[0] + 1;
while (right - left > 1) {
int mid = (left + right) / 2;
if (IsValid(mid))
left = mid;
else
right = mid;
}
return left;
}
};
int main() {
int n, k;
std::cin >> n >> k;
int* chairs = new int[n];
for (int i = 0; i < n; ++i) {
std::cin >> chairs[i];
}
BinarySearch bs(n, k, chairs);
std::cout << bs.Search();
return 0;
}