#include <iostream>
#include <vector>
#include <stack>
using namespace std;
using ll = long long;
int main () {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll n;
cin >> n;
vector<ll> a(n);
stack<ll> s;
for(int i = 0; i < n; i++) {
cin >> a[n - i - 1];
}
ll res = 0;
for(int i = 0; i < 2 * n; i++) {
while (!s.empty() && s.top() <= a[i % n]) {
s.pop();
}
s.push(a[i % n]);
res = max(res, (ll) s.size());
}
cout << res;
}
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 <iostream> #include <vector> #include <stack> using namespace std; using ll = long long; int main () { ios_base::sync_with_stdio(0); cin.tie(0); ll n; cin >> n; vector<ll> a(n); stack<ll> s; for(int i = 0; i < n; i++) { cin >> a[n - i - 1]; } ll res = 0; for(int i = 0; i < 2 * n; i++) { while (!s.empty() && s.top() <= a[i % n]) { s.pop(); } s.push(a[i % n]); res = max(res, (ll) s.size()); } cout << res; } |
English