万卷网 > 题目详情
题型:编程题

兔子不吃窝边草

有谚语云:“兔子不吃窝边草”。现给定若干块排列成一条线的草皮,假设兔子从任何一块草皮开始吃,但吃完一块后,绝对不吃直接相邻的草皮,则兔子最多可以吃掉多少草?

时间限制:10000

内存限制:65536

输入

输入第一行给出两个正整数,即 N (≤ 105) 为草皮的块数、 i (1 ≤ i ≤ N) 为兔子开始吃的第一块草皮的编号。第二行给出 N 个正整数 (≤ 103),以空格分隔,依次表示每块草皮的含草量。

输出

首先在一行中输出这只兔子最多可以吃掉的草量。下一行按兔子吃草的顺序输出每块被吃掉的草皮的编号。同行数字以 1 个空格分隔,行首尾不得有多余空格。 注意:我们必须假设兔子只朝一个方向跳着吃草,否则如果它可以来回跳,就能吃掉所有的草了。如果朝左右两个方向得到的结果一样,则兔子总是喜欢向左边跳;并且如果有多块草皮都可以得到同样的结果,兔子总是选择跳到离自己最近的那块。


样例输入

样例1:

10 4
2 1 4 3 1 1 5 2 3 1

样例2:

10 8
2 1 4 3 1 1 5 2 3 1


样例输出

样例1:

11
4 7 9

样例2:

9
8 6 3 1
更新时间:2025-05-13 15:48:03 |
【知识点】 电子学会C/C++四级

相似题推荐

判断题

归并排序是稳定排序算法。( )

A.正确 B.错误
2026-07-10
判断题

八进制数12转换为十进制数是14。( )

A.正确 B.错误
2026-07-10
判断题

C++的long long类型可以存储任意大的整数。( )

A.正确 B.错误
2026-07-10
判断题

定义结构体时使用关键字 `struct`。( )

A.正确 B.错误
2026-07-10
判断题

C++的long long类型可以存储任意大的整数。( )

A.正确 B.错误
2026-07-10
公众号
客服 反馈
顶部