Ниже приведен код, который я написал для проблемы с человеком-пауком и прыжками в codechef. Но он работает не для всех тестовых наборов, поэтому он не отправляется и показывает ошибку SIGSEGV после неудачной отправки.
int *dp;
void memset(int N)
{
dp = new int[N+1];
for(int i=0;i<=N;i++)
dp[i] = -1;
}
int energy(int n,int N,int Height[])
{
if(n == N-1)
return 0;
if(dp[n]!=-1)
return dp[n];
int mini = INT_MAX;
for(int i = 1;n+i<=N-1;i=i*2)
{
int ener = abs(Height[n+i] - Height[n]) + energy(n+i,N,Height);
mini = min(mini,ener);
}
dp[n] = mini;
return mini;
}