I am getting wrong answer for the problem .Every testcase given in comments runs correctly.
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<b;i++)
using namespace std;
typedef long long int ll;
int dp[10001];
ll coins(int n,vector<int> &v)
{
ll res;
if (n == 0)
res = 0;
else if (dp[n] != -1)
res = dp[n];
else
res = max(v[n-1]+coins(n-2,v),coins(n-1,v));
dp[n]=res;
return res;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin>>t;
int i=1;
while(i<=t)
{
int n;
cin>>n;
memset(dp,-1,sizeof(dp));
vector<int> v(n);
for(int i=0;i<n;i++)
{
cin>>v[i];
}
ll ans = coins(n,v);
cout<<"Case "<<i<<": "<<ans<<endl;
i++;
}
return 0;
}