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

}

}

相关推荐
轻描淡写606几秒前
二进制存储数据
java·开发语言·算法
laocooon52385788612 分钟前
C++ 设计模式概述及常用模式
开发语言·c++·设计模式
爱潜水的小L13 分钟前
自学嵌入式day28,文件操作
linux·数据结构·算法
2301_8003997216 分钟前
误用sizeof()计算指针
算法
咔咔咔的17 分钟前
1523. 在区间范围内统计奇数数目
c++
wbs_scy19 分钟前
C++ :Stack 与 Queue 完全使用指南(基础操作 + 经典场景 + 实战习题)
开发语言·c++
ULTRA??25 分钟前
QT向量实现GJK碰撞检测算法几何图形二维版本
c++·qt·算法
我要升天!27 分钟前
QT -- QSS界面优化
开发语言·c++·qt
JANGHIGH29 分钟前
c++ 多线程(四)
开发语言·c++
flashlight_hi33 分钟前
LeetCode 分类刷题:987. 二叉树的垂序遍历
数据结构·算法·leetcode