#include #include #include #include #include using namespace std; int cmp(long long a,long long b) { return a>b; } int main() { int i,j,k,m,n; long long a[100005]; long long b[100005]; int t; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); scanf("%d",&n); mapcnt; cnt.clear(); for(int i=1;i<=n;i++)scanf("%I64d",&a[i]); long long mm=0; int kk=0; for(int i=1;i<=n-1;i++) { long long temp; temp=abs(a[i]-a[i+1]); cnt[temp]++; if(cnt[temp]<=1)b[++kk]=temp; if(mmmmm)mmm=temp; } sum+=mmm; // printf("shan1:%lld\n",mmm); mmm=0; for(int i=1;i<=n-2;i++) { long long temp=abs(a[i+1]-a[i]); if(temp>mmm)mmm=temp; } // printf("shan n:%lld\n",mmm); sum+=mmm; for(int i=2;i<=n-1;i++) { long long temp; temp=abs(a[i-1]-a[i+1]); long long temp1=abs(a[i-1]-a[i]); long long temp2=abs(a[i+1]-a[i]); int cntt=cnt[mm]; int cnttt=cnt[b[2]]; if(temp1==mm)cntt--; if(temp2==mm)cntt--; if(temp1==b[2])cnttt--; if(temp2==b[2])cnttt--; if(temp>mm) { sum-=mm; sum+=temp; //printf("shan %d:%lld\n",i,temp); } else { if(cntt<=0) { sum-=mm; if(cnttt<=0) {sum+=b[3]; //printf("shan %d:%lld\n",i,b[3]); } else {sum+=b[2]; // printf("shan %d:%lld\n",i,b[3]); } } } } printf("%I64d\n",sum); } return 0; }