#include<cmath>//别人的代码 
 #include<cstdio>
 #include<cstring>
 #include<iostream>
 using namespace std;
 #define R register
 inline int read()
 {
     char ch=getchar();
     int x=0;bool s=1;
     while(!isdigit(ch)){if(ch=='-')s=0;ch=getchar();}
     while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}
     return s?x:-x;
 }//快读(这题略卡常)
 int s[1007];
 int f[1007][1007];
 int ml[1007][1007];
 int mr[1007][1007];
 //设ml为固定L端时的min值,mr为固定R端时的max值
 void write(int x)
 {
     if(x>9)write(x/10);
     putchar(x%10+'0');
     return;
 }//快写
 int main()
 {
     //freopen("a.in","r",stdin);
     int t=read();
     while(t--)
     {
         int n=read();
         for(R int i=1;i<=n;++i)
         s[i]=s[i-1]+read();//前缀和
         for(R int l=1;l<=n;++l)
         {
             f[l][l]=s[l]-s[l-1];
             ml[l][l]=s[l]+f[l][l];//标记数组,元素下标是什么标记数组下标就是什么 
             mr[l][l]=s[l-1]-f[l][l];
         }//预处理
         for(R int len=2;len<=n;++len)
         for(R int l=1,r=len;r<=n;++l,++r)//枚举区间
         {
             f[l][r]=s[r]-s[l-1];
             //mr
             //for(R int _l=l+1;_l<=r;++_l)
             //f[l][r]=max(f[l][r],s[_l-1]-s[l-1]-f[_l][r]);//注释掉的是原来的暴力
             f[l][r]=max(f[l][r],mr[l+1][r]-s[l-1]);
             //ml
             //for(R int _r=r-1;_r>=l;--_r)
             //f[l][r]=max(f[l][r],s[r]-s[_r]-f[l][_r]);
             f[l][r]=max(f[l][r],s[r]-ml[l][r-1]);
             //
             ml[l][r]=min(ml[l][r-1],s[r]+f[l][r]);
             mr[l][r]=max(mr[l+1][r],s[l-1]-f[l][r]);
         }
         int x=(f[1][n]+s[n])>>1;
         if(x<0){putchar('-');write(-x);}
         else write(x);
         putchar('\n');
         //输出答案
     }
     return 0;
 }