#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include using namespace std; bool iskado(ll x,ll y,ll z){ if(y>x && y>z && x!=z) return true; if(y>t; while(t--){ int n; cin>>n; vector A(n),B(n),C(n); rep(i,n){ ll x; cin>>x; A[i]=x; B[(i+1)%n]=x; C[(i+2)%n]=x; } vector dpa(n),dpb(n),dpc(n); vector maa(n),mab(n),mac(n); for(int i=0;i0) maa[i]=maa[i-1]; continue; } if(i<3) dpa[i]=A[i]; else dpa[i]=maa[i-3]+A[i]; if(i==0) maa[i]=dpa[i]; else maa[i]=max(maa[i-1],dpa[i]); } for(int i=0;i0) mab[i]=mab[i-1]; continue; } if(i<3) dpb[i]=B[i]; else dpb[i]=mab[i-3]+B[i]; if(i==0) mab[i]=dpb[i]; else mab[i]=max(mab[i-1],dpb[i]); } for(int i=0;i0) mac[i]=mac[i-1]; continue; } if(i<3) dpc[i]=C[i]; else dpc[i]=mac[i-3]+C[i]; if(i==0) mac[i]=dpc[i]; else mac[i]=max(mac[i-1],dpc[i]); } ll ans=0; rep(i,n-2){ ans=max({ans,dpa[i],dpb[i],dpc[i]}); } cout<