Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98306 | xiaosong | 早凉与序列4 | C++ | 运行超时 | 0 | 1000 MS | 12160 KB | 873 | 2023-08-14 14:46:33 |
#include <iostream> using namespace std; bool c[1000000]; long long a[1000000]; long long n,k,x,s=0; void get(){ for(int i=0;i<n;i+=1){ if(c[i]){ a[i]+=x; }else{ a[i]-=x; } } int newS=0; for(int l=0;l<n;l+=1){ for(int r=l;r<n;r+=1){ for(int i=l;i<=r;i+=1){ newS+=a[i]; } if(newS>s){ s=newS; } newS=0; } } for(int i=0;i<n;i+=1){ if(c[i]){ a[i]-=x; }else{ a[i]+=x; } } } void d(int will,int gb){ if(gb==n){ c[gb]=false; return; } if(will==0){ get(); c[gb]=false; c[gb+1]=true; d(will,gb+1); }else{ c[gb]=true; d(will-1,gb+1); c[gb]=false; d(will,gb+1); } c[gb]=false; return; } int main(){ cin>>n>>k>>x; for(int i=0;i<1000000;++i){ c[i]=false; } for(int i=0;i<n;++i){ cin>>a[i]; } d(k-1,0); cout<<s; return 0; }