70分调不出来,我是不是废了……
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,a[100005],maxx,s[100005],ans,sum,t;
void dfs(int l,int r){
if(l>r) return;
ans=sum-(s[r]-s[l-1])+x*(r-l+1);
// cout<<ans<<" "<<maxx<<" "<<l<<" "<<r<<endl;
maxx=max(maxx,ans);
if(a[l]>=x&&a[r]>=x)
if(a[l]-x>a[r]-x) dfs(l+1,r);
else if(a[l]-x<a[r]-x) dfs(l,r-1);
else dfs(l+1,r-1);
else if(a[l]>=x) dfs(l+1,r);
else if(a[r]>=x) dfs(l,r-1);
else if(a[l]<=a[r]) dfs(l,r-1);
else if(a[l]>=a[r]) dfs(l+1,r);
// else dfs(l+1,r),dfs(l,r-1);
// dfs(l+1,r);
// dfs(l,r-1);
}
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>x;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];
if(a[i]>=x) t++;
}
if(x==0||t==n){
cout<<s[n];
return 0;
}
sum=ans=maxx=s[n];
dfs(1,n);
cout<<maxx;
}