比赛 EYOI与SBOI开学欢乐赛6th 评测结果 AATATTATTT
题目名称 简短的题目 最终得分 40
用户昵称 康尚诚 运行时间 6.132 s
代码语言 C++ 内存使用 6.19 MiB
提交时间 2022-09-19 19:57:30
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
typedef long long LL;
int val[N];
LL h[N];//前缀和
bool allsame=true;int same;//第一个特判:全部相等 
//第二个特判:r-l+1<10(不会写)
bool dizeng=true;
bool allzheng=true;//第四个特判:a[i]全部为正数(包括第三个特判a[i]=i)
bool all0=true;
int main()
{
    freopen("wwydatsv.in","r",stdin);
    freopen("wwydatsv.out","w",stdout);
    val[0]=-1e7;
    h[0]=0;
    int n,L,R;
    cin>>n>>L>>R;
    for(int i=1;i<=n;i++)
    {
        cin>>val[i];
        if(i==1) same=val[i];//第一个特判 
        else if(val[i]!=same) allsame=false;
        if(val[i]<=val[i-1]) dizeng=false;
        if(val[i]<0) allzheng=false;
        if(val[i]) all0=false; 
        h[i]=h[i-1]+val[i];
    }
    if(allsame)
    {
        if(same<0)
        {
            for(int i=1;i<=n;i++)
            {
                cout<<same*L<<" ";
            }
        }
        else
        {
            for(int i=1;i<=n;i++)
            {
                cout<<same*R<<" ";
            }
        }
    }
    else if(allzheng&&dizeng)
    {
        for(int i=1;i<=n-R;i++)
        {
            cout<<h[i+R-1]-h[i-1]<<" ";
        }
        for(int i=1;i<=R;i++)
        {
            cout<<h[n]-h[n-R]<<" ";
        }
    }
    else if(all0)
    {
        for(int i=1;i<=n;i++)
        {
            cout<<"0 ";
        }
    }
    else
    {
        LL mx;
        for(int i=1;i<=n;i++)
        {
            mx=-1e9;
            for(int l=1;l<=i;l++)
            {
                for(int r=i;r<=n&&r-l+1<=R;r++)
                {
                    if(r-l+1<L) continue;
                    mx=max(mx,h[r]-h[l-1]);
                }
            }
            cout<<mx<<" ";
        }
    }
}