比赛 |
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;
}