#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1010100;
int n;
int num[3*MAX_N];
stack <int> otoczka;
int main() {
ios_base::sync_with_stdio(0);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> num[i];
num[n + i] = num[i];
}
size_t wyn = 0;
for (int i = 2 * n - 1; i >= 0; i--) {
while(!otoczka.empty() && otoczka.top() <= num[i])
otoczka.pop();
otoczka.push(num[i]);
wyn = max(wyn, otoczka.size());
}
cout << wyn << endl;
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 27 28 29 30 31 32 | #include <bits/stdc++.h> using namespace std; const int MAX_N = 1010100; int n; int num[3*MAX_N]; stack <int> otoczka; int main() { ios_base::sync_with_stdio(0); cin >> n; for (int i = 0; i < n; i++) { cin >> num[i]; num[n + i] = num[i]; } size_t wyn = 0; for (int i = 2 * n - 1; i >= 0; i--) { while(!otoczka.empty() && otoczka.top() <= num[i]) otoczka.pop(); otoczka.push(num[i]); wyn = max(wyn, otoczka.size()); } cout << wyn << endl; return 0; } |
English