why I am getting TLE on this proble : https://codeforces.me/contest/1389/problem/B my code :
include<bits/stdc++.h>
using namespace std;
int n, k, z; long long dp[100005][10];
long long sol(int arr[], int pos, int total, int left) {
if (pos >= n || pos < 0 || total == 0) return 0;
if (dp[pos][left] != -1) return dp[pos][left];
long long ret = 0;
if (pos < n)ret = max(ret, arr[pos] + sol(arr, pos + 1, total - 1, left));
if (left && pos > 0 && total) {
ret = max(ret, sol(arr, pos - 1, total - 1, left - 1) + arr[pos]);
}
return dp[pos][left] = ret;
}
int main() { int cs; scanf("%d", &cs); while (cs--) { memset(dp, -1, sizeof(dp)); scanf("%d %d %d", &n, &k, &z); int arr[n]; for (int i = 0; i < n; i++) scanf("%d", &arr[i]); long long ans = sol(arr, 1, k, z) + arr[0]; printf("%lld\n", ans); } }
Thanks in advance



