이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <climits>
#include <vector>
// Function prototype for provided MinMax function
void MinMax(long long s, long long t, long long* mn, long long* mx);
long long findGap(int T, int N) {
if (T != 1) {
// Only implementing subtask 1
return -1;
}
long long globalMin, globalMax;
MinMax(LONG_LONG_MIN, LONG_LONG_MAX, &globalMin, &globalMax);
if (N == 1) {
// If there is only one number, no gap exists
return 0;
}
// Calculate optimal number of segments
long long segmentSize = (globalMax - globalMin) / (N - 1);
long long maxGap = 0;
long long lastMax = globalMin;
// Process each segment to find the largest gap
for (long long i = 0; i < N - 1; ++i) {
long long s = globalMin + i * segmentSize + 1; // Start of the next segment
long long t = s + segmentSize - 1; // End of the next segment
if (i == N - 2) t = globalMax; // Ensure the last segment reaches globalMax
long long mn, mx;
MinMax(s, t, &mn, &mx);
if (mn != -1) { // If there are numbers in this range
maxGap = std::max(maxGap, mn - lastMax);
lastMax = mx;
}
}
return maxGap;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |