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();

}

}

相关推荐
刀法如飞14 小时前
Python列表去重:从新手三连到高阶特技,20种解法全收录
python·算法·编程语言
minji...14 小时前
算法题 动态规划
算法·动态规划
张健115640964814 小时前
C++访问控制与友元
java·开发语言·c++
水蓝烟雨14 小时前
3337. 字符串转换后的长度 II
算法·leetcode
MegaDataFlowers14 小时前
SiliconCompiler workflow
算法
_日拱一卒14 小时前
LeetCode:226翻转二叉树
数据结构·算法·leetcode
爱编码的小八嘎15 小时前
C‘语言完美演绎9-11
c语言
BirdenT15 小时前
20260424紫题训练
c++·算法
还是阿落呀15 小时前
基本控制结构
开发语言·c++·算法
样例过了就是过了15 小时前
LeetCode热题100 最长有效括号
c++·算法·leetcode·动态规划