五一到了,PKU-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?
Input
Line 1: N (2 <= N <= 1000) 景点数
Line 2: N个整数,每个景点的海拔
Output
最多能浏览的景点数
Sample Input
8 186 186 150 200 160 130 197 220
Sample Output
4
#include<stdio.h>
int main()
{
int n,h,l,i,k,j,a[1001],max=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);//记录海拔
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++) //j点开始下山
{
l=a[i];int s=1;
for(k=i;k<=j;k++)
{
if(a[k]>l){
s++;l=a[k];//上山所看风景数
}
}
for(k=j;k<n;k++){//下山
if(a[k]<l){
s++;l=a[k];
}
}
if(max<s) max=s;//记录最大数
}
}
printf("%d\n",max);
}