Codeforces 279 B Books

时间:2022-01-12 11:46:39

题意:给出n本书,总的时间t,每本书的阅读时间a[i],必须按照顺序来阅读,问最多能够阅读多少本书

有点像紫书的第七章讲的那个滑动区间貌似 维护一个区间的消耗的时间小于等于t,然后维护一个区间的最大值

 #include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std; typedef long long LL;
const int INF = (<<)-;
const int mod=;
const int maxn=;
int a[maxn],pre[maxn]; int main(){
int n,t;
scanf("%d %d",&n,&t);
for(int i=;i<=n;i++) scanf("%d",&a[i]); pre[]=;
for(int i=;i<=n;i++) pre[i]=pre[i-]+a[i]; int l=;
int r=;
int sum=,ans=-;
while(r<=n){
if((pre[r]-pre[l])<=t){
ans=max(ans,r-l);
r++;
}
else l++;
}
printf("%d\n",ans);
return ;
}