func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, k, s;   int dp[2][155][155 * 155 / 4];   int num[155];   int main() {     while (~scanf( %d%d%d , &n, &k, &s)) {       for (int i = 1; i <= n; i++) {         scanf( %d , &num[i]);       }       int all = (n - k) * k;       if (s >= all) {         sort(num + 1, num + n + 1);         int sum = 0;         for (int i = 1; i <= k; i++) {           sum += num[i];         }         printf( %d n , sum);         continue;       }       for (int j = 0; j <= k; j++) {         for (int r = 0; r <= s; r++) {           dp[0][j][r] = 1000000000;         }       }       dp[0][0][0] = 0;       int pre = 0, now = 1;       for (int i = 0; i < n; i++) {         for (int j = 0; j <= k; j++) {           for (int r = 0; r <= s; r++) {             dp[now][j][r] = 1000000000;           }         }         int x = min(i, k);         for (int j = 0; j <= x; j++) {           for (int r = 0; r <= s; r++) {             if (dp[pre][j][r] == 1000000000) continue;             dp[now][j][r] = min(dp[now][j][r], dp[pre][j][r]);             if (j + 1 <= k && r + i - j <= s)               dp[now][j + 1][r + i - j] =                   min(dp[now][j + 1][r + i - j], dp[pre][j][r] + num[i + 1]);           }         }         now ^= 1;         pre ^= 1;       }       int ans = 1000000000;       for (int i = 0; i <= s; i++) {         ans = min(ans, dp[pre][k][i]);       }       printf( %d n , ans);     }     return 0;   }   