取数游戏
#include<bits/stdc++.h>
using namespace std;
int n,m,a[55],c[55],ans=-0x7fffffff;
int main(){
scanf("%d%d",&n,&m);
for(int i = 1; i <= n; i++) scanf("%d",&a[i]);
for(int l = 0; l <= n; l++){
for(int r = l+1; r <= n+1; r++){// error:r<=n, right:r <= n+1 reason:右边一个都不拿走
int k = m - (l + (n-r+1));
if(k < 0) continue; int t = 0;
memset(c,0,sizeof c);
for(int i = 1; i <= l; i++) c[++t] = a[i];
for(int j = r; j <= n; j++) c[++t] = a[j];
sort(c+1,c+t+1); int p = 1,sum = 0;
while(c[p] < 0 && k > 0) p++,k--;
for(int j = p; j <= t; j++)
sum += c[j];
ans = max(ans, sum);
}
}
cout<<ans<<endl;
return 0;
}