正确性很模糊但是过了
#include<bits/stdc++.h>
#define maxn 1000006
#define ll long long
using namespace std;
int t,df[maxn],n,ls[maxn];
ll ans = 0,a[maxn],dp[maxn];
int main(){
ios::sync_with_stdio(NULL);
cin.tie(0);
cin >> t;
while(t--){
cin >> n;
for(int i=1;i<=n;++i){
cin >> a[i];
ls[i] = df[a[i]];
df[a[i]] = i;
}
ans = 0;
for(int i=1;i<=n;++i){
df[a[i]] = 0;
dp[i] = dp[i-1];
if(a[i]==a[i-1]){
ans = ans+a[i];
continue;
}
if(ls[i]!=0){
dp[i] = max(dp[i],dp[ls[i]+1]+a[i]);
}
}
cout << dp[n]+ans << endl;
}
return 0;
}