记录编号 590868 评测结果 EEEEEEEEEE
题目名称 灯笼 最终得分 0
用户昵称 Gravatar李奇文 是否通过 未通过
代码语言 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;
}