Untitled
unknown
plain_text
2 years ago
754 B
16
Indexable
#include<bits/stdc++.h>
using namespace std;
int func(int indx, vector<int> &dp, set<int> &st, vector<int>arr)
{
if(indx<0)
{
return 0;
}
int nottake=0+func(indx-1,dp,st,arr);
int take=0;
if(st.count(arr[indx])!=1)
{
st.insert(arr[indx]-1);
st.insert(arr[indx]+1);
take=arr[indx]+func(indx-1,dp,st,arr);
}
return max(nottake,take);
}
void solve()
{
int n;
cin>>n;
vector<int>arr;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
arr.push_back(x);
}
vector<int>dp(n,-1);
set<int>st;
cout<<func(n-1,dp,st,arr);
}
int main()
{
int t;
cin>>t;
while(t--)
{
solve();
}
}Editor is loading...