比赛 2024暑假C班集训C 评测结果 TTTTWWWWWW
题目名称 灯笼 最终得分 0
用户昵称 Untitled 运行时间 5.831 s
代码语言 C++ 内存使用 3.67 MiB
提交时间 2024-07-12 09:52:56
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

int n,m,x,k[100010];
long long res;
bool d[20010];

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",&k[i]);
        k[i]+=k[i-1];
    }
    if (n==m){
        for (int i=1;i<=n;i++){
            for (int j=1;j<=n;j++){
                if (k[max(i,j)]-k[min(i,j)-1]>=x) res++;
            }
        }
        printf("%lld",res);
        return 0;
    }
    int tmp;
    if (n>2000){
        printf("0");
        return 0;
    }
    for (int i=1;i<=n;i++){
        for (int j=1;j<=n;j++){
            tmp=0;memset(d,0,sizeof(d));
            for (int p=min(i,j);p<=max(i,j);p++){
                if (!d[k[p]-k[p-1]+10000]) d[k[p]-k[p-1]+10000]=1,tmp++;
            }
            if (tmp<=m && k[max(i,j)]-k[min(i,j)-1]>=x) res++;
        }
    }
    printf("%lld",res);
    
    return 0;
}