April long challenge BOOLGAME Where is my code wrong?

Problem Link

Acc to editorial, this is what I understood.
dp(i, j) = {min(k, 2^i) scores from x1,x2,x3—xi}, where j is number of continuous ones behind. So at every new xi, we can either add 0, or 1. If we add 0, then dp(i, j) = all previous dp scores. But if we add 1, then for each score in dp[i-1][all j] we add scores of special intervals ending at i and starting at index GE j. After this we remove excess elements from dp[i] and move to i+1.

I have implemented the same, but my code passes some tcs and not all. It would be very helpful if codechef community helps me detect bugs from my code.

My Code Link