您的位置:首页 > 其它

Codeforces 279 B Books

2015-04-16 23:37 316 查看
题意:给出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 = (1<<30)-1;
const int mod=1000000007;
const int maxn=100005;
int a[maxn],pre[maxn];

int main(){
int n,t;
scanf("%d %d",&n,&t);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);

pre[0]=0;
for(int i=1;i<=n;i++) pre[i]=pre[i-1]+a[i];

int l=0;
int r=1;
int sum=0,ans=-1;
while(r<=n){
if((pre[r]-pre[l])<=t){
ans=max(ans,r-l);
r++;
}
else l++;
}
printf("%d\n",ans);
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: