#include int n,t; int data[100010],left[100010],right[100010]; inline int maximum(int a,int b) { return a > b ? a : b; } inline int abs(int x) { return x > 0 ? x : -x; } int main(void) { int i,j,k; long long answer; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i = 1;i <= n;++i) scanf("%d",&data[i]); left[1] = right[n] = 0; for(i = 2;i <= n;++i) left[i] = maximum(left[i - 1],abs(data[i] - data[i - 1])); for(i = n - 1;i >= 1;--i) right[i] = maximum(right[i + 1],abs(data[i + 1] - data[i])); answer = left[n - 1] + right[2]; for(i = 2;i <= n - 1;++i) answer += maximum(maximum(left[i - 1],right[i + 1]),abs(data[i + 1] - data[i - 1])); printf("%I64d\n",answer); } }