diff --git a/problem/P3853/P3853.cpp b/problem/P3853/P3853.cpp new file mode 100644 index 00000000..70b2adca --- /dev/null +++ b/problem/P3853/P3853.cpp @@ -0,0 +1,30 @@ +#include + +using namespace std; + +int l, r, n, k, a[100005]; + +bool check(int mid) { + int m = 0; + for (int i = 2; i <= n; i++) { + if (a[i] - a[i - 1] >= mid) { + m += (a[i] - a[i - 1]) / mid; + if ((a[i] - a[i - 1]) % mid == 0) m--; + } + } + return m <= k; +} + +int main() { + cin >> r >> n >> k; + for (int i = 1; i <= n; i++) { + cin >> a[i]; + } + while (l < r) { + int mid = l + r >> 1; + if (check(mid)) r = mid; + else l = mid + 1; + } + cout << l << endl; + return 0; +}