【山脉】(3+3+3+3=12分)
绍兴的南部是山区,小薇站在这些山脉的某座山峰上向南眺望,看到的是一座座的山峰。现在小薇告诉你自北向南所有山峰的高度,并且告诉你她目前所在的山峰,当她站在该山峰上向南眺望时一共能看到多少座山峰。为了方便计算,小薇还制定下列规定:
(1)所有的山脉自北向南成一条直线排列。这就意味着如果南部的某座山峰(比如说自北向南的第i座山峰)髙度小于北面的山峰(比如说自北向南的第i-1座,或者也可以是第i-2座,第i-3座...),则南面的这座山峰小薇将无法看到。
(2)如果南面山峰高度等于北面山峰高度,则南面的山峰也无法看到。
输入数据第一行包含两个整数n和x。n表示总的山峰数量(不超过100), x表示小薇 当前所在山峰的编号(自北向南顺序编号,x<n)。第二行包含n个整数,依次表示自北向 南成一条直线排列的山峰的高度值(单位都是“米”)。
输出数据包含一行一个整数,表示小薇站在第x座山峰上向南眺望时最多能看到的山峰的个数。
下面是用来解决该问题的程序,请完替程序。
输入样例1:
10 4
34 23 35 22 21 19 25 29 31 28
输出样例1:
4 //看到的山脉高度依次是:21、25、29、31
输入样例2:
12 3
45 32 44 45 47 48 51 54 54 53 59 61
输出样例2:
7 //看到的山脉高度依次是:45、47、48、51、54、59、61
program test_2011_5;
var
i, h, s, x, n: integer;
a:array[1.. 100] of integer;
begin
readln(n, x);
for i:=1 to n do read(a[i]);
s:=1;h:=a[x+1];
for i:=x+2 to n do begin
if a[i]>h then
begin
h:=a[i]; inc(s) ;
end;
end;
write (s);
end.