差分+贪心
1、2 <= i , j <=n(优先)
2、i = 1, 2 <=j <=n
3、2 <= i <= n , j = n + 1
4、i = 1, j = n + 1(没有意义)
黄金题解链接:https://www.acwing.com/solution/content/122743/
C++ 代码
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
const int N = 1e5 + 10;
int n,a[N];
LL pos,neg;
int main(){
cin >> n;
for(int i=1;i<=n;++i) cin >> a[i];
for(int i=n;i>1;--i) a[i] -= a[i-1];
for(int i=2;i<=n;++i){
if(a[i] > 0) pos += a[i];
else neg -= a[i];
}
cout << min(pos,neg) + abs(pos - neg) << endl;
cout << abs(pos - neg) + 1;
return 0;
}