/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <vector>
#include <stack>
int main()
{
int n;
std::cin >> n;
std::vector <int> V(n);
int maks = -2;
int maks_id = -1;
for (int i = 0; i < n; i++) {
std::cin >> V[i];
if(V[i] > maks) {
maks_id = i;
maks = V[i];
}
}
std::stack <int> S;
S.push(V[maks_id]);
size_t result = 1;
for (int i = maks_id - 1; i >= 0; i--) {
while(S.size() > 0 && V[i] >= S.top()){
S.pop();
}
S.push(V[i]);
result = std::max(result, S.size());
}
for (int i = n - 1; i > maks_id; i--) {
while(S.size() > 0 && V[i] >= S.top()){
S.pop();
}
S.push(V[i]);
result = std::max(result, S.size());
}
std::cout << result << '\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 37 38 39 40 41 42 43 44 45 | /****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include <iostream> #include <vector> #include <stack> int main() { int n; std::cin >> n; std::vector <int> V(n); int maks = -2; int maks_id = -1; for (int i = 0; i < n; i++) { std::cin >> V[i]; if(V[i] > maks) { maks_id = i; maks = V[i]; } } std::stack <int> S; S.push(V[maks_id]); size_t result = 1; for (int i = maks_id - 1; i >= 0; i--) { while(S.size() > 0 && V[i] >= S.top()){ S.pop(); } S.push(V[i]); result = std::max(result, S.size()); } for (int i = n - 1; i > maks_id; i--) { while(S.size() > 0 && V[i] >= S.top()){ S.pop(); } S.push(V[i]); result = std::max(result, S.size()); } std::cout << result << '\n'; } |
English