#include <bits/stdc++.h>
using namespace std;
using ll =long long;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector <int> k(n);
deque <int> r;
ll wyn = 0;
for(int i = 0; i < n; i++) {
cin >> k[i];
}
for (int i = n - 1; i >= 0; i--) {
while(r.size() != 0 && r[r.size() - 1] <= k[i]) {
r.pop_back();
}
r.push_back(k[i]);
}
for (int i = n - 1; i >= 0; i--) {
wyn = max(wyn, (ll)r.size());
if (r.front() == k[i]) {
r.pop_front();
}
int j = r.size() - 1;
while(r.size() != 0 && r[r.size() - 1] <= k[i]) {
r.pop_back();
}
r.push_back(k[i]);
}
wyn = max(wyn, (ll)r.size());
cout << wyn << '\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 34 35 36 | #include <bits/stdc++.h> using namespace std; using ll =long long; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector <int> k(n); deque <int> r; ll wyn = 0; for(int i = 0; i < n; i++) { cin >> k[i]; } for (int i = n - 1; i >= 0; i--) { while(r.size() != 0 && r[r.size() - 1] <= k[i]) { r.pop_back(); } r.push_back(k[i]); } for (int i = n - 1; i >= 0; i--) { wyn = max(wyn, (ll)r.size()); if (r.front() == k[i]) { r.pop_front(); } int j = r.size() - 1; while(r.size() != 0 && r[r.size() - 1] <= k[i]) { r.pop_back(); } r.push_back(k[i]); } wyn = max(wyn, (ll)r.size()); cout << wyn << '\n'; } |
English