#include using namespace std; //#define int long long #define REP(i,m,n) for(int i=(m);i<(n);i++) #define rep(i,n) REP(i,0,n) #define pb push_back #define all(a) a.begin(),a.end() #define rall(c) (c).rbegin(),(c).rend() #define mp make_pair #define endl '\n' #define vec vector #define mat vector > #define fi first #define se second typedef long long ll; typedef unsigned long long ull; typedef pair pll; typedef long double ld; typedef complex Complex; const ll INF=1e9+7; const ll inf=INF*INF; const ll mod=998244353; const ll MAX=100010; bool is_k(ll a,ll b,ll c){ bool f=0; if((a>b&&c>b)||(a>t; while(t--){ ll n;cin>>n; vectora(n); rep(i,n){ cin>>a[i]; a.pb(a[i]); } ll ans=0; { vectordp(2*n); if(is_k(a[0],a[1],a[2]))dp[2]=a[0]; REP(i,3,n){ if(is_k(a[i-2],a[i-1],a[i])){ dp[i]=dp[i-3]+a[i-2]; } dp[i]=max(dp[i-1],dp[i]); } ans=max(dp[n-1],ans); } { vectordp(2*n); if(is_k(a[1],a[2],a[3]))dp[3]=a[1]; REP(i,4,n+1){ if(is_k(a[i-2],a[i-1],a[i])){ dp[i]=dp[i-3]+a[i-2]; } dp[i]=max(dp[i-1],dp[i]); } ans=max(dp[n],ans); } { vectordp(2*n); if(is_k(a[2],a[3],a[4]))dp[4]=a[2]; REP(i,5,n+2){ if(is_k(a[i-2],a[i-1],a[i])){ dp[i]=dp[i-3]+a[i-2]; } dp[i]=max(dp[i-1],dp[i]); } ans=max(dp[n+1],ans); } cout<