比赛 2024暑假C班集训C 评测结果 TTTTWWWWWW
题目名称 灯笼 最终得分 0
用户昵称 wzh0425 运行时间 8.115 s
代码语言 C++ 内存使用 3.92 MiB
提交时间 2024-07-12 09:52:13
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,x,a[100005],s[100005],ans,t[20005];
int main(){
    freopen("lantern.in","r",stdin);
    freopen("lantern.out","w",stdout);
    scanf("%d%d%d",&n,&m,&x);
    for (int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        s[i]=s[i-1]+a[i];
    }
    if (n==m){
        for (int i=1;i<=n;i++){
            for (int j=1;j<=n;j++){
                int maxs=max(i,j);
                int mins=min(i,j);
                if (s[maxs]-s[mins-1]>=x) ans++;
            }
        }
        printf("%d",ans);
    }else if (n<=2000){
        for (int i=1;i<=n;i++){
            for (int j=1;j<=n;j++){
                int maxs=max(i,j);
                int mins=min(i,j);
                memset(t,0,sizeof(t));
                int tmp=0;
                for (int k=mins;k<=maxs;k++){
                    if (!t[a[k]+10000]){
                        t[a[k]+10000]=1;
                        tmp++;
                    }
                }
                if (tmp<=m&&s[maxs]-s[mins-1]>=x) ans++;
            }
        }
        printf("%d",ans);
    }else{
        printf("0");
    }
    return 0;
}