#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef double db;
typedef pair<int, int> pii;
#define all(x) (x).begin(), (x).end()
#define sz(x) (x).size()
#define rep(i, l, r) for(int i=l; i<(r); i++)
void solve(){
int n;
cin >> n;
vector<int> a(n);
for(auto &e : a) cin >> e;
deque<pii> dek;
int r = n-1;
int l = n-1;
for(l = n-1; l>=0; l--) {
while(!dek.empty() && dek.front().first <= a[l]) dek.pop_front();
dek.push_front({a[l], l});
}
int wynik = dek.size();
l = 0;
for(int i=0; i<n; i++) {
//cout << "l="<<l<<", deksize = "<<dek.size()<<"\n";
l = (l+n-1)%n;
if(!dek.empty() && dek.back().second == r) dek.pop_back();
r = (r+n-1)%n;
while(!dek.empty() && dek.front().first <= a[l]) dek.pop_front();
dek.push_front({a[l], l});
if(wynik < (int)dek.size()) {
wynik = (int)dek.size();
}
}
cout << wynik << "\n";
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int t = 1;
// cin >> t;
while(t--){
solve();
}
}
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 47 | #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef double db; typedef pair<int, int> pii; #define all(x) (x).begin(), (x).end() #define sz(x) (x).size() #define rep(i, l, r) for(int i=l; i<(r); i++) void solve(){ int n; cin >> n; vector<int> a(n); for(auto &e : a) cin >> e; deque<pii> dek; int r = n-1; int l = n-1; for(l = n-1; l>=0; l--) { while(!dek.empty() && dek.front().first <= a[l]) dek.pop_front(); dek.push_front({a[l], l}); } int wynik = dek.size(); l = 0; for(int i=0; i<n; i++) { //cout << "l="<<l<<", deksize = "<<dek.size()<<"\n"; l = (l+n-1)%n; if(!dek.empty() && dek.back().second == r) dek.pop_back(); r = (r+n-1)%n; while(!dek.empty() && dek.front().first <= a[l]) dek.pop_front(); dek.push_front({a[l], l}); if(wynik < (int)dek.size()) { wynik = (int)dek.size(); } } cout << wynik << "\n"; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int t = 1; // cin >> t; while(t--){ solve(); } } |
English