@anon55659401 please help
3 Likes
I am too waiting for all submissions to become public.If anyone solved it,please post the solution here.
dp1[n] and dp2[n] are two dp-arrays.
for(i=3;i<=n-1;i++)
{
dp1[i]=max(a1[i]+dp2[i-1],a1[i]+a1[i-1]+dp2[i-2],a1[i]+a1[i-1]+a1[i-2]+dp2[i-3]);
dp2[i]=max(a2[i]+dp1[i-1],a2[i]+a2[i-1]+dp1[i-2],a2[i]+a2[i-1]+a2[i-2]+dp1[i-3]);
}
cout<<max(dp1[n-1],dp2[n-1]) ;
4 Likes
My idea was simple and recursive.
the state is (i, a, b)
where i is the index and a is how many consecutive can you take from first array from this index
and b is how many consecutive can you take from second array from this index
call with (0,3,3)
write recursion with memoization. done.
1 Like