题目链接:P7798 [COCI2015-2016#6] PUTOVANJE - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
Mislav 最喜欢在森林里度过时光,因为森林里有各种各样的水果,吃了每种水果都能获得一定的饱食度。但他不会使自己的总饱食度超过 C。
现在森林里有一条小径,小径旁顺次种了 N 个水果,每个水果都有一个饱食度 wi。Mislav 可以选择从任意一个水果的位置开始,往第 N 个水果前进。在前进的过程中,如果吃下当前位置的水果,总饱食度不会超过 C,他就一定会吃下该水果。否则,他就会跳过该水果,继续前进。
请问 Mislav 能吃掉的水果个数最多是多少?
输入格式
第一行包含两个整数 N 和 C。
第二行包含 N 个整数 wi,为第 i 个水果的饱食度。
输出格式
输出一个整数,为 Mislav 能吃掉的最多水果个数。
样例 #1
样例输入 #1
- 5 5
- 3 1 2 1 1
样例输出 #1
4
样例 #2
样例输入 #2
- 7 5
- 1 5 4 3 2 1 1
样例输出 #2
3
样例 #3
样例输入 #3
- 5 10
- 3 2 5 4 3
样例输出 #3
3
提示
【样例 1 解释】
如果 Mislav 决定从第 1 个水果开始吃,那么他可以吃到第 1、2、4 个水果,一共吃了 3 个。如果他从第 2 种水果开始吃,那么他可以吃到第 2、3、4、5 共 4 个水果。
【数据范围】
对于 100% 的数据,1<= N <=1000,1<= C <=10^6,1<= wi <=1000。
【题目来源】
题目译自 COCI 2015-2016 CONTEST #6 T2 PUTOVANJE。
本题分值按 COCI 原题设置,满分 80。
AC code:
- #include
- #include
-
- using namespace std;
-
- int a[1010];
-
- int main()
- {
- int n,c;
- cin>>n>>c;
- int res=0;
- for(int i=0;i
- cin>>a[i];
- for(int i=0;i
- {
- int cnt=0;
- int sum=0;
- for(int j=i;j
- {
- if(sum+a[j]<=c)
- sum+=a[j],cnt++;
- }
- res=max(res,cnt);
- }
- cout<
-
- return 0;
- }
-
相关阅读:
象棋中的马跳步问题
java对一个Map<String, Integer>进行排序
vue3/vue2的兄弟组件的传值
session.upload_progress进行文件包含和反序列化学习
【模电实验】【验证性实验——单管共发射极放大电路实验】
Fabric.js 图形标注
android系统目录结构
变截面悬臂梁弯曲变形计算:理论计算以及有限元结果对比
Springboot 配置使用 RabbitMQ 并实现延时队列
misc类设备与蜂鸣器驱动==Linux驱动开发6
-
原文地址:https://blog.csdn.net/m0_57587757/article/details/126395443