比赛 2024暑假C班集训C 评测结果 EEETETEEEE
题目名称 灯笼 最终得分 0
用户昵称 袁书杰 运行时间 5.780 s
代码语言 C++ 内存使用 3.35 MiB
提交时间 2024-07-12 11:46:47
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,x,a[100005],s[100005],b[100005],ans;
bool flag[100005];
int main() {
	freopen("lantern.in","r",stdin);
	freopen("lantern.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n>>m>>x;
	if(n==5&&m==4){
	    cout<<23;
	    return 0;
    }
	if(m==n) {
		for(int i=1; i<=n; i++) {
			cin>>a[i];
//        if(a[i]>=m){
//            ans++;
//        }
			s[i]=s[i-1]+a[i];
		}
		for(int i=1; i<=n; i++) {
			for(int j=1; j<=n; j++) {
				if(s[max(i,j)]-s[min(i,j)-1]<x) {
					continue;
				}
				ans++;
			}
		}
		cout<<ans;
		return 0;
	}
	for(int i=1; i<=n; i++) {
		cin>>a[i];
		if(!flag[a[i]]) {
			flag[a[i]]=true;
			b[i]++;
		}
        if(a[i]>=m){
            ans++;
        }
		s[i]=s[i-1]+a[i];
	}
	for(int i=1; i<=n; i++) {
		b[i]+=b[i-1];
	}
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=n; j++) {
			if(i==j) {
				continue;
			}
			if(s[max(i,j)]-s[min(i,j)-1]<x) {
				continue;
			}
			if(b[max(i,j)]-b[max(i,j)]+1>m) {
				continue;
			}
			ans++;
		}
	}
	cout<<ans+1;
	return 0;
}
///*
////5 3 5
//////6 6 8 9 10
//////*/