rt,强迫症和数学性质分析综合症
#include<bits/stdc++.h>
#define ll long long
#define rep(i,aaa,bbb) for(int i=(aaa);i<=(bbb);i++)
#define per(i,aaa,bbb) for(int i=(aaa);i>=(bbb);i--)
#define all(a) (a).begin(),(a).end()
#define pb push_back
#define pii pair<int,int>
#define l first
#define r second
#define ptln(...) print(__VA_ARGS__,"\n")
using namespace std;
template<typename T>inline void read(T&x){cin>>x;}
template<typename T,typename...Args>inline void read(T&x,Args&...args){read(x);read(args...);}
template<typename T>inline void print(const T&x){cout<<x;}
template<typename T,typename...Args>inline void print(const T&x,Args&&...args){cout<<x<<" ";print(args...);}
constexpr int inf=0x7fffffff;
constexpr int maxn=2e5+10;
int n;
int mp[1000010];
ll dp[maxn];
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
int Tms;read(Tms);
while(Tms--){
memset(mp,0,sizeof mp);
memset(dp,0,sizeof dp);
read(n);
ll ans=0,mx=0;
vector<pair<pii,int>>l;
rep(i,1,n){
int a;read(a);
if(mp[a]&&mp[a]==i-1)ans+=a;
else if(mp[a])l.pb({{mp[a]+1,i-1},a});
mp[a]=i;
}
sort(all(l));
l.pb({{0,0},0});//防RE
int j=0;
rep(i,1,n){
dp[i]=max(dp[i],dp[i-1]);
if(l[j].l.l==i)dp[l[j].l.r]=max(dp[l[j].l.r],dp[l[j].l.l-1]+l[j].r),j++;
}
rep(i,1,n){
mx=max(dp[i],mx);
}
ptln(ans+mx);
}
return 0;
}