Submission #1320496


Source Code Expand

#include <algorithm>
int N, M, K, ptr[100009]; long long dp[309][100009];
int main() {
	scanf("%d %d %d", &N, &M, &K);
	for (int i = 0; i < N; i++) scanf("%lld", &dp[0][i]);
	for (int i = 1; i < K; i++) {
		int pl = 0, pr = 0;
		for (int j = 0; j < N; j++) {
			if (j >= i) dp[i][j] = dp[i - 1][ptr[pl]] + 1LL * (i + 1) * dp[0][j];
			if (ptr[pl] == j - M) pl++;
			while (pl < pr && dp[i - 1][ptr[pr - 1]] < dp[i - 1][j]) pr--;
			ptr[pr++] = j;
		}
	}
	printf("%lld\n", *std::max_element(dp[K - 1], dp[K - 1] + N));
	return 0;
}

Submission Info

Submission Time
Task A - Struck Out
User square1001
Language C++14 (GCC 5.4.1)
Score 0
Code Size 546 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:4:30: error: ‘scanf’ was not declared in this scope
  scanf("%d %d %d", &N, &M, &K);
                              ^
./Main.cpp:15:62: error: ‘printf’ was not declared in this scope
  printf("%lld\n", *std::max_element(dp[K - 1], dp[K - 1] + N));
                                                              ^