제출 #12771

#제출 시각아이디문제언어결과실행 시간메모리
12771Qwaz격자 보존하기 (GA9_preserve)C++14
0 / 100
28 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());

	int index = k-1, current = 0;
	while(index >= 0 && d > 0){
		if(index < k-1){
			d -= 2;
			current += gap[index];
		}
		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...