#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S chmax( S & a, T b) {
if ( a< b) {
a= b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int N;
long long A[ 100000 ] ;
long long s[ 100000 ] ;
long long t[ 100000 ] ;
class Solution{
public :
int maxValueAfterReverse( vector< int > & nums) {
int cTE1_r3A, i, mask;
long long res = 0 ;
long long tmp = 0 ;
N = nums.size ( ) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
A[ i] = nums[ i] ;
}
if ( N== 1 ) {
return 0 ;
}
for ( i= ( 1 ) ; i< ( N) ; i++ ) {
res + = abs ( A[ i] - A[ i- 1 ] ) ;
}
for ( cTE1_r3A= ( 0 ) ; cTE1_r3A< ( 2 ) ; cTE1_r3A++ ) {
for ( i= ( 1 ) ; i< ( N) ; i++ ) {
chmax( tmp, abs ( A[ 0 ] - A[ i] ) - abs ( A[ i- 1 ] - A[ i] ) ) ;
}
reverse( A,A+ N) ;
}
for ( mask= ( 0 ) ; mask< ( 1 << 2 ) ; mask++ ) {
for ( i= ( 0 ) ; i< ( N- 1 ) ; i++ ) {
if ( mask& 1 ) {
if ( mask& 2 ) {
s[ i] = - abs ( A[ i] - A[ i+ 1 ] ) + A[ i] + A[ i+ 1 ] ;
}
else {
s[ i] = - abs ( A[ i] - A[ i+ 1 ] ) + A[ i] - A[ i+ 1 ] ;
}
}
else {
if ( mask& 2 ) {
s[ i] = - abs ( A[ i] - A[ i+ 1 ] ) - A[ i] + A[ i+ 1 ] ;
}
else {
s[ i] = - abs ( A[ i] - A[ i+ 1 ] ) - A[ i] - A[ i+ 1 ] ;
}
}
}
for ( i= ( 1 ) ; i< ( N) ; i++ ) {
if ( mask& 1 ) {
if ( mask& 2 ) {
t[ i] = - abs ( A[ i] - A[ i- 1 ] ) - A[ i- 1 ] - A[ i] ;
}
else {
t[ i] = - abs ( A[ i] - A[ i- 1 ] ) - A[ i- 1 ] + A[ i] ;
}
}
else {
if ( mask& 2 ) {
t[ i] = - abs ( A[ i] - A[ i- 1 ] ) + A[ i- 1 ] - A[ i] ;
}
else {
t[ i] = - abs ( A[ i] - A[ i- 1 ] ) + A[ i- 1 ] + A[ i] ;
}
}
}
for ( i= ( N- 1 ) - 1 ; i>= ( 1 ) ; i-- ) {
chmax( t[ i] , t[ i+ 1 ] ) ;
}
for ( i= ( 0 ) ; i< ( N- 1 ) ; i++ ) {
chmax( tmp, s[ i] + t[ i+ 1 ] ) ;
}
}
return res + tmp;
}
}
;
// cLay varsion 20200119-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int N;
// ll A[1d5];
// ll s[1d5], t[1d5];
//
// class Solution {
// public:
// int maxValueAfterReverse(vector<int>& nums) {
// ll res = 0, tmp = 0;
// N = nums.size();
// rep(i,N) A[i] = nums[i];
//
// if(N==1) return 0;
//
// rep(i,1,N) res += abs(A[i] - A[i-1]);
//
// rep(2){
// rep(i,1,N) tmp >?= abs(A[0] - A[i]) - abs(A[i-1] - A[i]);
// reverse(A,A+N);
// }
//
// rep(mask,1<<2){
// rep(i,N-1) s[i] = -abs(A[i]-A[i+1]) if[mask&1, +, -] A[i] if[mask&2, +, -] A[i+1];
// rep(i,1,N) t[i] = -abs(A[i]-A[i-1]) if[mask&1, -, +] A[i-1] if[mask&2, -, +] A[i];
//
// rrep(i,1,N-1) t[i] >?= t[i+1];
// rep(i,N-1) tmp >?= s[i] + t[i+1];
// }
//
// return res + tmp;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIGNobWF4KFMgJmEsIFQgYil7CiAgaWYoYTxiKXsKICAgIGE9YjsKICB9CiAgcmV0dXJuIGE7Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgppbnQgTjsKbG9uZyBsb25nIEFbMTAwMDAwXTsKbG9uZyBsb25nIHNbMTAwMDAwXTsKbG9uZyBsb25nIHRbMTAwMDAwXTsKY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIGludCBtYXhWYWx1ZUFmdGVyUmV2ZXJzZSh2ZWN0b3I8aW50PiYgbnVtcyl7CiAgICBpbnQgY1RFMV9yM0EsIGksIG1hc2s7CiAgICBsb25nIGxvbmcgcmVzID0gMDsKICAgIGxvbmcgbG9uZyB0bXAgPSAwOwogICAgTiA9IG51bXMuc2l6ZSgpOwogICAgZm9yKGk9KDApO2k8KE4pO2krKyl7CiAgICAgIEFbaV0gPSBudW1zW2ldOwogICAgfQogICAgaWYoTj09MSl7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgZm9yKGk9KDEpO2k8KE4pO2krKyl7CiAgICAgIHJlcyArPSBhYnMoQVtpXSAtIEFbaS0xXSk7CiAgICB9CiAgICBmb3IoY1RFMV9yM0E9KDApO2NURTFfcjNBPCgyKTtjVEUxX3IzQSsrKXsKICAgICAgZm9yKGk9KDEpO2k8KE4pO2krKyl7CiAgICAgICAgY2htYXgodG1wLCBhYnMoQVswXSAtIEFbaV0pIC0gYWJzKEFbaS0xXSAtIEFbaV0pKTsKICAgICAgfQogICAgICByZXZlcnNlKEEsQStOKTsKICAgIH0KICAgIGZvcihtYXNrPSgwKTttYXNrPCgxPDwyKTttYXNrKyspewogICAgICBmb3IoaT0oMCk7aTwoTi0xKTtpKyspewogICAgICAgIGlmKG1hc2smMSl7CiAgICAgICAgICBpZihtYXNrJjIpewogICAgICAgICAgICBzW2ldID0gLWFicyhBW2ldLUFbaSsxXSkrQVtpXStBW2krMV07CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlewogICAgICAgICAgICBzW2ldID0gLWFicyhBW2ldLUFbaSsxXSkrQVtpXS1BW2krMV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICBpZihtYXNrJjIpewogICAgICAgICAgICBzW2ldID0gLWFicyhBW2ldLUFbaSsxXSktQVtpXStBW2krMV07CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlewogICAgICAgICAgICBzW2ldID0gLWFicyhBW2ldLUFbaSsxXSktQVtpXS1BW2krMV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZvcihpPSgxKTtpPChOKTtpKyspewogICAgICAgIGlmKG1hc2smMSl7CiAgICAgICAgICBpZihtYXNrJjIpewogICAgICAgICAgICB0W2ldID0gLWFicyhBW2ldLUFbaS0xXSktQVtpLTFdLUFbaV07CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlewogICAgICAgICAgICB0W2ldID0gLWFicyhBW2ldLUFbaS0xXSktQVtpLTFdK0FbaV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICBpZihtYXNrJjIpewogICAgICAgICAgICB0W2ldID0gLWFicyhBW2ldLUFbaS0xXSkrQVtpLTFdLUFbaV07CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlewogICAgICAgICAgICB0W2ldID0gLWFicyhBW2ldLUFbaS0xXSkrQVtpLTFdK0FbaV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZvcihpPShOLTEpLTE7aT49KDEpO2ktLSl7CiAgICAgICAgY2htYXgodFtpXSwgdFtpKzFdKTsKICAgICAgfQogICAgICBmb3IoaT0oMCk7aTwoTi0xKTtpKyspewogICAgICAgIGNobWF4KHRtcCwgc1tpXSArIHRbaSsxXSk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXMgKyB0bXA7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMjAwMTE5LTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gaW50IE47Ci8vIGxsIEFbMWQ1XTsKLy8gbGwgc1sxZDVdLCB0WzFkNV07Ci8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBpbnQgbWF4VmFsdWVBZnRlclJldmVyc2UodmVjdG9yPGludD4mIG51bXMpIHsKLy8gICAgIGxsIHJlcyA9IDAsIHRtcCA9IDA7Ci8vICAgICBOID0gbnVtcy5zaXplKCk7Ci8vICAgICByZXAoaSxOKSBBW2ldID0gbnVtc1tpXTsKLy8gCi8vICAgICBpZihOPT0xKSByZXR1cm4gMDsKLy8gCi8vICAgICByZXAoaSwxLE4pIHJlcyArPSBhYnMoQVtpXSAtIEFbaS0xXSk7Ci8vIAovLyAgICAgcmVwKDIpewovLyAgICAgICByZXAoaSwxLE4pIHRtcCA+Pz0gYWJzKEFbMF0gLSBBW2ldKSAtIGFicyhBW2ktMV0gLSBBW2ldKTsKLy8gICAgICAgcmV2ZXJzZShBLEErTik7Ci8vICAgICB9Ci8vIAovLyAgICAgcmVwKG1hc2ssMTw8Mil7Ci8vICAgICAgIHJlcChpLE4tMSkgc1tpXSA9IC1hYnMoQVtpXS1BW2krMV0pIGlmW21hc2smMSwgKywgLV0gQVtpXSBpZlttYXNrJjIsICssIC1dIEFbaSsxXTsKLy8gICAgICAgcmVwKGksMSxOKSB0W2ldID0gLWFicyhBW2ldLUFbaS0xXSkgaWZbbWFzayYxLCAtLCArXSBBW2ktMV0gaWZbbWFzayYyLCAtLCArXSBBW2ldOwovLyAKLy8gICAgICAgcnJlcChpLDEsTi0xKSB0W2ldID4/PSB0W2krMV07Ci8vICAgICAgIHJlcChpLE4tMSkgdG1wID4/PSBzW2ldICsgdFtpKzFdOwovLyAgICAgfQovLyAKLy8gICAgIHJldHVybiByZXMgKyB0bXA7Ci8vICAgfQovLyB9Owo=