#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
int p = max_element(a.begin(), a.end()) - a.begin();
deque<int> lrm;
lrm.push_back(a[p]);
int best = 1;
for (int step = 1; step < n; step++) {
int r = ((p - step) % n + n) % n;
int x = a[r];
while (!lrm.empty() && lrm.front() <= x) {
lrm.pop_front();
}
lrm.push_front(x);
best = max(best, (int)lrm.size());
}
cout << best << "\n";
}
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 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) cin >> a[i]; int p = max_element(a.begin(), a.end()) - a.begin(); deque<int> lrm; lrm.push_back(a[p]); int best = 1; for (int step = 1; step < n; step++) { int r = ((p - step) % n + n) % n; int x = a[r]; while (!lrm.empty() && lrm.front() <= x) { lrm.pop_front(); } lrm.push_front(x); best = max(best, (int)lrm.size()); } cout << best << "\n"; } |
English