作者:
菜菜-胶胶
,
2022-07-29 11:53:14
,
所有人可见
,
阅读 38
#include <iostream>
#include <cstring>
using namespace std;
const int inf = 0x3f3f3f3f;
const int N = 1e6 + 10;
int n, m;
long long f[N], a[N], pre[N];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
while(cin >> m >> n){
memset(f, 0, sizeof f);
memset(pre, 0, sizeof pre);
for(int i = 1; i <= n; i ++)
cin >> a[i];
long long ans = -inf;
for(int i = 1; i <= m; i ++){
ans = -inf;
for(int j = i; j <= n; j ++){
f[j] = max(pre[j - 1], f[j - 1]) + a[j];
pre[j - 1] = ans; ans = max(ans, f[j]);
}
}
cout << ans << endl;
}
return 0;
}