#include <cstdio>
int A[1000000], S[1000000];
int main(void) {
int n, m = 0, x = -1;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &A[i]);
if (m < A[i]) m = A[i], x = i;
}
int r = 0, k = 0;
for (int i = 0; i < n; i++) {
int j = (x-i+n)%n;
while (k > 0 && A[j] >= A[S[k-1]]) k--;
S[k++] = j;
if (r < k) r = k;
}
printf("%d\n", r);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <cstdio> int A[1000000], S[1000000]; int main(void) { int n, m = 0, x = -1; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &A[i]); if (m < A[i]) m = A[i], x = i; } int r = 0, k = 0; for (int i = 0; i < n; i++) { int j = (x-i+n)%n; while (k > 0 && A[j] >= A[S[k-1]]) k--; S[k++] = j; if (r < k) r = k; } printf("%d\n", r); } |
English