#include <cstdio>
#include <vector>
using std::vector;
const int M = 2'001'013;
int a[M];
vector<int> v;
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
a[i+n] = a[i];
}
int ret = 0;
for (int i = n+n-1; i>=0; i--) {
while (!v.empty() && v.back() <= a[i])
v.pop_back();
v.push_back(a[i]);
ret = std::max<int>(ret, v.size());
}
printf("%d\n", ret);
return 0;
}
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 | #include <cstdio> #include <vector> using std::vector; const int M = 2'001'013; int a[M]; vector<int> v; int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); a[i+n] = a[i]; } int ret = 0; for (int i = n+n-1; i>=0; i--) { while (!v.empty() && v.back() <= a[i]) v.pop_back(); v.push_back(a[i]); ret = std::max<int>(ret, v.size()); } printf("%d\n", ret); return 0; } |
English