1 条题解
-
0
Guest
-
0
#include<bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int a[N]; //每个景点需要消耗的时间 int n,t; //有多少个景点,假期总时间 int ans;//保存最终需要的 结果 最多景点个数 int sum;//区间之内需要消耗多少天 int l,r; int main(){ //输入有多少个景点,输入一个自己有多少假期 cin>>n>>t; for(int i = 1 ; i <=n ; i ++) { cin>>a[i];//每一个景点需要消耗的时间 } //左边指针+1 for(l = 1, r = 1 ; l<=n && r <= n; l ++ ) { //需要游玩的时间 + 该景点需要消耗的时间<= 总假期时间 while(r <=n && sum + a[r] <= t) { sum = sum + a[r]; //总时间加上去到r景点的时间 r++; //指针往右移动 } ans = max(ans, r - l); //打擂台求出 最长的区间 sum -= a[l];//减去左边界的经典 } cout<<ans; return 0; }
- 1
信息
- ID
- 10036
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者