测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题