给你一个长为 的数列
, 一个人现在要从两段吃这个序列
必须吃完
每次得到的收益为 吃到的数的值 但是每次吃完之后整个数列的所有数会减去
要求最大化最后的总收益
不难发现吃的顺序对答案没有影响
答案为
复杂度
#include <bits/stdc++.h>
#define LL long long
using namespace std;
LL ans;
int n,a[200050];
int main(){
int i;
cin >> n; for (i = 1; i <= n; ++i) cin >> a[i];
for (i = 1; i <= n; ++i) ans += a[i];
for (i = 1; i <= n; ++i) ans -= n-i;
cout << ans << endl;
return 0;
} 
京公网安备 11010502036488号