#include #include #include #include #include #include #include #define inf 999999999 #define mo 1000000007 #define LL long long using namespace std; LL b[100010],a[100010]; LL ans,x,y,z; int t,n; bool cmp(LL x,LL y) { return x>y; } int main() { scanf("%d",&t); while (t--) { memset(b,-1,sizeof(b)); memset(a,0,sizeof(a)); ans=0; scanf("%d",&n); for (int i=1;i<=n;i++) { scanf("%I64d",&a[i]); if (i>=2) b[i-1]=abs(a[i-1]-a[i]); } sort(b+1,b+n,cmp); x=abs(a[2]-a[1]); if (x==b[1]) ans+=b[2]; else ans+=b[1]; x=abs(a[n]-a[n-1]); if (x==b[1]) ans+=b[2]; else ans+=b[1]; for (int i=2;ib[1]) ans+=z; else if (x==b[1]) { if (z>b[2]) ans+=z; else if (y==b[2]) { if (z>b[3]) ans+=z; else ans+=b[3]; } else ans+=b[2]; } else if (y==b[1]) { if (z>b[2]) ans+=z; else if (x==b[2]) { if (z>b[3]) ans+=z; else ans+=b[3]; } else ans+=b[2]; } else ans+=b[1]; } printf("%I64d\n",ans); } }