A41305. 最长下坡小明天天沿着未名湖环湖路跑,有时候也觉得蛮累。累的时候跑下坡就很开心。小明想知道最长的一段下坡有多长。环湖路是个圆形,周长n米。每隔一米测一下路面高度,两个测高点之间的高度是单调变化或不变的。问最长的一段下坡有多少米长。小明只能顺时针跑。下坡必须高度单调减少。输入第一行是整数n,表示环湖路一共n米长(2<=n<=100)。 第二行是n个整数,每个整数范围[0,10000],按顺时针顺序给…
填空题
中等
知识点
题目描述
最长下坡
小明天天沿着未名湖环湖路跑,有时候也觉得蛮累。累的时候跑下坡就很开心。小明想知道最长的一段下坡有多长。环湖路是个圆形,周长n米。每隔一米测一下路面高度,两个测高点之间的高度是单调变化或不变的。
问最长的一段下坡有多少米长。小明只能顺时针跑。下坡必须高度单调减少。
输入
第一行是整数n,表示环湖路一共n米长(2<=n<=100)。 第二行是n个整数,每个整数范围[0,10000],按顺时针顺序给出了n个测高点的高度
输出
最长下坡路段的长度
样例输入
样例输入1:
5
2 1 5 6 3
样例输入2:
5
2 1 5 4 3
样例输入3:
4
1 1 1 1
样例输出
样例输出1:
3
样例输出2
4
样例输出3
0
提示
这是个简单枚举题,枚举起点即可
参考答案
#include <bits/stdc++.h>
using namespace std;
int a[210];
int main()
{
int n,t,maxn=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];a[i+n]=a[i];
}
for(int i=1;i<=n;i++){
t=0;
for(int j=i+1;j<=i+n;j++){
if(a[j]<a[j-1]) {
t++;
maxn=max(maxn,t);
}
else t=0;
}
}
cout<<maxn;
return 0;
}
上一题
下一题