链接:https://ac.nowcoder.com/acm/contest/318/B
来源:牛客网
题解:简单思维,暴力题,枚举以每一个元素为i边界,求得的最远j值。
代码:
#include <iostream>
using namespace std;
#define int long long
signed main(){
//cout << "Hello world!" << endl;
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int s[n+10];
int ans=0;
for(int i=0;i<n;i++) cin>>s[i];
for(int i=0;i<n-1;i++){
int mn=s[i];/*枚举以每一个元素为i边界*/
int mx=s[i];/*枚举以每一个元素为i边界*/
for(int j=i+1;j<n;j++){
mn=min(mn,s[j]);
mx=max(mx,s[j]);
if(s[j]>=mx&&mn==s[i]){/*左边界就是枚举的s[i],右边界必须>最大值才可以阔右边界(每个元素的值不一样)*/
ans=max(ans,j-i);/*因为j=i+1,更新完的mx可能是s[j(i+1)],所以是s[j]>=mx*/
}
}
}
cout<<ans<<endl;
}
return 0;
}
题目描述
IG牛逼!!!
众所周知,IG是英雄联盟S8世界总决赛冠军,夺冠之夜,数亿人为之欢呼!
赛后某百分百胜率退役ADC选手的某表情包意外走红,某苟会长看到此表情包也想模仿。
于是有n个友爱的萌新决定每人都送会长一根长为ai面包。(数据保证没有面包的长度相等)
会长无聊时把面包摆成一排,他惊人地发现他喜欢这样一类区间,区间[i, j]满足条件:
区间里的面包没有比左端点i号面包短的,同时也没有比右端点j号面包长的。
Gey会长在思考这样一个问题:
所有满足条件的区间中j-i的最大值是多少?
输入描述:
t组数据。
每组样例第一行输入整数n,接下来一行输入n个正整数。
($tleq30$, $nleq1000$, $a_{i}leq1000000$)
输出描述:
输出满足条件的区间中j-i的最大值。
示例1
输入
2 4 5 4 3 6 4 6 5 4 3
输出
1 0