#SM06L01P03. SM.06.L01.P03.砍树(stump)
SM.06.L01.P03.砍树(stump)
题目描述
为了在农场的一块土地上种奶牛吃的草,FJ 必须要把前面的 N 棵树砍掉,这些树紧密地排成一条直线,并且用 l~N 编号标识,每一棵树都有自己的高度 Hi。
FJ想用一种烈性炸药来摧毁这些树,这种烈性炸药除了能摧毁安装了炸药的那棵树以外还能传递压倒两边矮于这一棵树的所有邻近树,直到遇到一棵不低于这一棵树的树为止。
例如:一排树的高度如下:1 2 5 4 3 3 6 6 2,如果FJ在第三棵树上装炸药(高度为5),那么第二棵树也同样给压倒(高度为 2<5),第一棵树也同样倒下(高度为 1<2),再来看另一边第四棵树(高度为 4<5)和第五棵树(高度为 3<4)同样也给压倒。剩下的状态为:- - - - - 3 6 6 2,接下来在第 7 和第 8 棵树上安装炸药就可以把剩下的树毁掉。
请你帮助 Fj 利用最少的炸药把这些树毁掉。
输入格式
第1行:一个整数N;
第2~N+1行:包含各棵树的高度Hi。
数据范围
1 ≤ N ≤ 50000
1 ≤ Hi ≤ 10000
输出格式
若干行,每一行为一个整数,代表安装炸药的树的编号,按照升序输出。
样例
9
1
2
5
4
3
3
6
6
2
3
7
8
相关
在以下作业中: