比赛 |
2024暑假C班集训C |
评测结果 |
EEEEETEEEE |
题目名称 |
灯笼 |
最终得分 |
0 |
用户昵称 |
dream |
运行时间 |
3.872 s |
代码语言 |
C++ |
内存使用 |
3.29 MiB |
提交时间 |
2024-07-12 10:18:28 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100005;
ll n,m,x;
ll lk[N];
ll qzh[N];
ll qzh2[N];
int mk[20005];
int read(){
char c;
int sum=0,f=1;
c=getchar();
while(c<'0'||c>'9'){
if(c=='-'){
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9'){
sum=sum*10+c-'0';
c=getchar();
}
return sum*f;
}
namespace subtask1{
int main(){
ll res=0;
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
int m1=qzh2[j]-qzh[i-1];
if(m1>m){
break;
}
if(qzh[j]-qzh[i-1]>=x){
// cout<<i<<" "<<j<<"\n";
if(j==i){
res++;
}
else{
res+=2;
}
}
}
}
cout<<res;
return 0;
}
}
namespace task4{
int main(){
ll res=0;
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
if(qzh[j]-qzh[i-1]>=x){
if(i==j){
res++;
}
else{
res+=2;
}
}
}
}
cout<<res;
return 0;
}
}
int main(){
freopen("lantern.in","r",stdin);
freopen("lantern.out","w",stdout);
n=read();
m=read();
x=read();
for(int i=1;i<=n;i++){
lk[i]=read();
if(!mk[lk[i]]){
mk[lk[i]]=1;
qzh2[i]=qzh2[i-1]+1;
}
}
for(int i=1;i<=n;i++){
qzh[i]=qzh[i-1]+lk[i];
}
if(m==n){
return task4::main();
}
else{
return subtask1::main();
}
return 0;
}