记录编号 |
590868 |
评测结果 |
EEEEEEEEEE |
题目名称 |
灯笼 |
最终得分 |
0 |
用户昵称 |
李奇文 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
2.158 s |
提交时间 |
2024-07-12 14:14:12 |
内存使用 |
3.07 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,x,a[10005],ans;
struct treen{
int lc,rc;
int dat;
}t[40010];
void build(int p,int l,int r){
t[p].lc=l,t[p].rc=r;
if(l==r){
t[p].dat=a[l];
return;
}
int mid=(l+r)>>1;
build(p<<1,l,mid);
build(p<<1|1,mid+1,r);
t[p].dat=t[p<<1].dat+t[p<<1|1].dat;
}
int updata(int i,int l,int r){
if(l==t[i].lc&&r==t[i].rc){
return t[i].dat;
}
int mid=(t[i].lc+t[i].rc)>>1;
if(r<=mid) return updata(i<<1,l,r);
else if(l>mid) return updata(i<<1|1,l,r);
else return updata(i<<1,l,mid)+updata(i<<1|1,mid+1,r);
}
int main(){
cin>>n>>m>>x;
for(int i=1;i<=n;i++){
cin>>a[i];
}
build(1,1,n);
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(j-i+1<=m){
if(updata(1,i,j)>=x){
if(i==j){
ans+=1;
}else{
ans+=2;
}
}
}
}
}
cout<<ans;
return 0;
}