This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
#include <algorithm>
#include <functional>
int n, k, d, blank[100001];
int main()
{
int i, p;
int last = 0;
scanf("%d %d %d", &n, &k, &d);
for (i = 0; i < k; i++) {
scanf("%d", &p);
blank[i] = p - last - 1;
last = p;
}
blank[k] = n - last;
int first = blank[0];
last = blank[k];
sort(blank, blank+k+1, std::greater<int>());
int result = 0;
for (i = 0; d > 1 && i <= k; i++) {
result += blank[i];
if (first == blank[i]) {
first = 0;
d--;
} else if (last == blank[i]) {
last = 0;
d--;
} else {
d -= 2;
}
}
if (d == 1)
result += std::max(first, last);
else if (first + last > blank[i-1])
result = result - blank[i-1] + first + last;
printf("%d\n", result);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |