题解:
首先我们知道如果反转奇数的长度的话那么翻转的序列是没有变化的。所以我们只能反转奇数长度的数组。然后我们模拟反转偶数长度的时候,可以发现其实交换的就是相邻数组的位置。所以我们每次交换得到的贡献有两种,一个是a[i]-a[i-1],另一种是a[i-1]-a[i];
所以我们先将偶数下标的答案加起来,再枚举反转区间,也就是找最大连续子段和。
#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll sum;
int a[N];
signed main()
{