#include<bits/stdc++.h>
using namespace std;
const int N = 1000000 * 2 + 17;
int tab[N];
vector<int>start;
int find_ans(int s, int n) {
int last_big = 0;
int ans =0;
for(int i= s; i<s + n; i++) {
if(tab[i] > last_big) {
last_big = tab[i];
ans++;
}
}
return ans;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
tab[0] = N + 1;
int n;
cin>>n;
for(int i=1; i<=n ;i++) {
cin>>tab[i];
tab[i+n] = tab[i];
}
tab[0] = tab[n];
tab[2*n+1] = tab[1];
for(int i=1; i<=n; i++) {
if(tab[i] < tab[i+1] && tab[i] < tab[i-1]) {
start.push_back(i);
}
}
int ans = 0;
for(int i:start){
int pom = find_ans(i, n);
ans = max(ans, pom);
}
cout<<ans;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include<bits/stdc++.h> using namespace std; const int N = 1000000 * 2 + 17; int tab[N]; vector<int>start; int find_ans(int s, int n) { int last_big = 0; int ans =0; for(int i= s; i<s + n; i++) { if(tab[i] > last_big) { last_big = tab[i]; ans++; } } return ans; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); tab[0] = N + 1; int n; cin>>n; for(int i=1; i<=n ;i++) { cin>>tab[i]; tab[i+n] = tab[i]; } tab[0] = tab[n]; tab[2*n+1] = tab[1]; for(int i=1; i<=n; i++) { if(tab[i] < tab[i+1] && tab[i] < tab[i-1]) { start.push_back(i); } } int ans = 0; for(int i:start){ int pom = find_ans(i, n); ans = max(ans, pom); } cout<<ans; } |
English