func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, k;   long long num[5005], sum[5005], dp[5005][5005];   int main() {     int i, j;     while (scanf( %d%d%d , &n, &m, &k) != EOF) {       for (i = 0; i < n; i++) {         scanf( %I64d , &num[i]);       }       memset(sum, 0, sizeof(sum));       for (i = 0; i <= m - 1; i++) {         sum[0] += num[i];       }       for (i = 1; i + m <= n; i++) {         sum[i] = sum[i - 1];         sum[i] -= num[i - 1];         sum[i] += num[i + m - 1];       }       memset(dp, 0, sizeof(dp));       for (j = 1; j <= k; j++) {         for (i = n - m * j; i >= 0; i--) {           dp[i][j] = max(dp[i + 1][j], dp[i + m][j - 1] + sum[i]);         }       }       long long res = 0;       for (i = 0; i <= n - m * k; i++) {         res = max(dp[i][k], res);       }       cout << res << endl;     }     return 0;   }   