编程题 第 2 题25 分
好斗的牛
时间限制 1 秒 · 内存限制 512 MB
题目描述
你有 个牛棚,从左到右一字排开。你希望把 头牛安置到牛棚里。麻烦的是,你的牛很好斗,如果他们附近有其他的牛,他们就会不安分地去挑事。其中,第 头牛的攻击范围是 ,这意味着,如果他的左边 个牛棚或右边 个牛棚里有其他牛,他就会去挑事。
你想留下连续的一段牛棚,并把其他牛棚都卖掉。请问你最少需要留下多少牛棚,才能保证至少存在一种方案能够把所有的 头牛都安置进剩余的牛棚里,且没有牛会挑事?
特别提醒:在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
输入格式
第一行 个正整数 。
接下来一行 个用空格隔开的正整数 。
接下来一行 个用空格隔开的正整数 。
输出格式
输出一行一个整数,表示你最少需要留下多少牛棚。
样例 1
输入
2 1 2 1 2
输出
4
样例 1 解释
你可以留下 个牛棚,并如此安排你的牛:
| 牛棚 1 | 牛棚 2 | 牛棚 3 | 牛棚 4 |
|---|---|---|---|
| 牛 1 | 牛 2 |
样例 2
输入
3 1 2 3 3 2 1
输出
7
数据范围
对于 的测试点,保证 ;
对于另外 的测试点,保证 ;
对于 的测试点,保证 ;
对于所有测试点,保证 ,。