C. Boring Day(cf955)

题意:每次可以从数组顶端取任意数量,取出的所有数组之和如果在l到r之间,则获胜,否则失败,求最大获胜局数。

分析:用双指针算出区间内的和。

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

void sol(){

ll n,l,r;cin>>n>>l>>r;

ll ans=0,sum=0;

ll a[n+10];

for(int i=1;i<=n;i++)cin>>a[i];

ll x=1,y=0;ll c=0;

while(x<=n&&y<=n){

if(sum>=l&&sum<=r){

ans++;sum=0;x=y+1;

}

if(sum<l){

y++;

sum+=a[y];continue;

}

if(sum>r){

sum-=a[x];

x++;

}

}

cout<<ans<<endl;

}

int main(){

int t;cin>>t;

while(t--){

sol();

}

}

相关推荐
Darkwanderor9 小时前
什么数据量适合用什么算法
c++·算法
超绝振刀怪9 小时前
【C++多态】
开发语言·c++
zc.ovo10 小时前
河北师范大学2026校赛题解(A,E,I)
c++·算法
py有趣10 小时前
力扣热门100题之环形链表
算法·leetcode·链表
py有趣10 小时前
力扣热门100题之回文链表
算法·leetcode·链表
学嵌入式的小杨同学11 小时前
STM32 进阶封神之路(三十九)FreeRTOS 临界区、挂起 / 删除、钩子函数、调度底层原理|从应用到内核深度解析
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb
oioihoii11 小时前
Cursor根本无法调试C++
开发语言·c++
leo_messi9411 小时前
多线程(五) -- 并发工具(二) -- J.U.C并发包(八) -- CompletableFuture组合式异步编程
android·java·c语言
jie1889457586611 小时前
c语言------
c语言·开发语言