#include<bits/stdc++.h>
using namespace std;
#define il inline
#define pb push_back
using ll=long long;
const int N=2010;
int n;
ll a[N],f[N][2][N],ans,g[200010][12][12];
int main() {
freopen("color13.in","r",stdin);
freopen("color.out","w",stdout);
int _;scanf("%d",&_);
while(_--) {
scanf("%d",&n);
bool bj=0;
for(int i=1;i<=n;i++) scanf("%lld",&a[i]),bj|=a[i]>10;
ans=0;
if(!bj) {
for(int i=0;i<=n;i++)
for(int j=0;j<=10;j++)
for(int k=0;k<=10;k++) g[i][j][k]=-1e18;
g[0][0][0]=0;
for(int i=1;i<=n;i++) {
for(int j=0;j<=10;j++) {
for(int k=0;k<=10;k++) {
g[i][a[i]][k]=max(g[i][a[i]][k],g[i-1][j][k]+(j==a[i])*a[i]);
g[i][j][a[i]]=max(g[i][j][a[i]],g[i-1][j][k]+(k==a[i])*a[i]);
ans=max({ans,g[i][a[i]][k],g[i][j][a[i]]});
}
}
}
printf("%lld\n",ans);
continue;
}
// for(int i=1;i<=n;i++)
// for(int j=0;j<=n;j++)
// f[i][0][j]=f[i][1][j]=0;
// for(int i=1;i<=n;i++) {
// for(int j=0;j<=i-2;j++) {
// f[i][0][j]=f[i-1][0][j]+(a[i]==a[i-1])*a[i];
// f[i][1][j]=f[i-1][1][j]+(a[i]==a[i-1])*a[i];
// }
// for(int j=0;j<=i-1;j++) {
// f[i][0][i-1]=max(f[i][0][i-1],f[i-1][1][j]+(a[j]==a[i])*a[i]);
// f[i][1][i-1]=max(f[i][1][i-1],f[i-1][0][j]+(a[j]==a[i])*a[i]);
// }
// for(int j=0;j<=i;j++) ans=max({ans,f[i][0][j],f[i][1][j]});
// }
// printf("%lld\n",ans);
}
return 0;
}
这份代码我本地测能过#13,但luogu上挂了,请问是什么问题