# Methods to remove Time Limit exceeded error from my code?

https://www.codechef.com/MARCH21C/problems/COLGLF4

This is the question, for which I have written the solution.

It shows Time Limit Exceeded(TLE) error.

Pls suggest how do I optimise it further.

I have optimised it to some extent. How do I Optimise it further. Pls Help!

Here in my code: e-> egg, h-> choclate

``````#define fastio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#include <bits/stdc++.h>
using namespace std;

// help returns the min cost for n items
int help(int n, int e, int h, int& a, int& b, int& c, int *** dp){

if(n==0) return 0;
if(dp[h][e][n]!=-1) return dp[h][e][n];

int p1=INT_MAX,p2=INT_MAX,p3=INT_MAX;

if(e>=2){
int ans = help(n-1,e-2,h,a,b,c,dp);
// dp[h][e-2] = ans;
if(ans != INT_MAX) p1=ans + a;
}
if(h>=3){
int ans = help(n-1,e,h-3,a,b,c,dp);
// dp[h-3][e] = ans;
if(ans != INT_MAX) p2 = ans + b;
}
if(e>=1&&h>=1){
int ans = help(n-1, e-1,h-1,a,b,c,dp);
// dp[h-1][e-1] = ans;
if(ans != INT_MAX) p3= ans + c;
}

int f = min(p1,min(p2,p3));
dp[h][e][n] = f;
return f;
}

int main() {
fastio();
int T;
cin>>T;
for(int t=0;t<T;t++){
int n,e,h,a,b,c;
cin>>n>>e>>h>>a>>b>>c;
// scanf("%d",&n);
// scanf("%d",&e);
// scanf("%d",&h);
// scanf("%d",&a);
// scanf("%d",&b);
// scanf("%d",&c);

int*** dp = new int**[h+1];
for(int i=0;i<=h;i++){
dp[i] = new int*[e+1];
for(int j=0;j<=e;j++){
dp[i][j] = new int[n+1];
for(int k=1;k<=n;k++) dp[i][j][k]=-1;
}
}
for(int i=0;i<=h;i++){
for(int j=0;j<=e;j++){
dp[i][j][0]=0;
}
}

int ans = help(n,e,h,a,b,c,dp);
if(ans == INT_MAX) cout<<-1<<'\n';
else cout<<ans<<'\n';

// for(int i=0;i<=h;i++){
//     for(int j=0;j<=e;j++){
//         cout<<dp[i][j]<<" ";
//     }cout<<endl;
// }

for(int i=0;i<=h;i++){
for(int j=0;j<=e;j++){
delete [] dp[i][j];
}
delete dp[i];
}
delete [] dp;

}
return 0;
}
``````