Submission #12772

#TimeUsernameProblemLanguageResultExecution timeMemory
12772Qwaz격자 보존하기 (GA9_preserve)C++98
100 / 100
32 ms2372 KiB
#include <cstdio> #include <vector> #include <algorithm> using namespace std; const int MAX = 100020; int n, d, k, data[MAX]; void input(){ scanf("%d%d%d", &n, &k, &d); for(int i = 0; i < k; i++) scanf("%d", &data[i]); } vector < int > gap; int res; void solve(){ int front = data[0]-1, rear = n-data[k-1]; for(int i = 1; i < k; i++) gap.push_back(data[i]-data[i-1]-1); sort(gap.begin(), gap.end()); if(d >= 1){ res = max(res, front); res = max(res, rear); } if(d >= 2) res = max(res, front+rear); int index = k-2, current = 0; while(index >= 0 && d >= 2){ d -= 2; current += gap[index--]; res = max(res, current); if(d >= 1){ res = max(res, current+front); res = max(res, current+rear); } if(d >= 2) res = max(res, current+front+rear); } printf("%d\n", res); } int main(){ input(); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...