#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
vector<int>v(n);
int mx=0,mi;
for(int i=0; i<n; i++)
{
cin>>v[i];
if(v[i]>=mx)
{
mx=v[i];
mi=i;
}
}
vector<int>v1(n);
for(int i=0; i<n; i++)
v1[i]=v[(mi+i+1)%n];
vector<int>st;
int res=0;
for(int i=n-1; i>=0; i--)
{
while(!st.empty()&&st[st.size()-1]<=v1[i])
st.pop_back();
st.push_back(v1[i]);
res=max(res,(int)st.size());
}
cout<<res<<"\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 | #include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; vector<int>v(n); int mx=0,mi; for(int i=0; i<n; i++) { cin>>v[i]; if(v[i]>=mx) { mx=v[i]; mi=i; } } vector<int>v1(n); for(int i=0; i<n; i++) v1[i]=v[(mi+i+1)%n]; vector<int>st; int res=0; for(int i=n-1; i>=0; i--) { while(!st.empty()&&st[st.size()-1]<=v1[i]) st.pop_back(); st.push_back(v1[i]); res=max(res,(int)st.size()); } cout<<res<<"\n"; } |
English