#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define inf 0x3f3f3f3f
const int N=2e5+5;
int n;
queue<int>q;
stack<int>a,b;
void solve(){
cin>>n;
int cnt=0,ans=0;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(a.size()==0) a.push(x);
else{
if(x<a.top()){
a.push(x);
}
else{
if(b.size()==0||x>b.top()){
b.push(x);
}
else{
cnt++;
ans=max(ans,(int)a.size());
while(a.size()) a.pop();
while(b.size()&&b.top()>x){
a.push(b.top());
b.pop();
}
a.push(x);
}
}
}
}
if(a.size()){
cnt++;
ans=max(ans,(int)a.size());
}
if(b.size()){
cnt++;
ans=max(ans,(int)b.size());
}
cout<<cnt<<" "<<ans;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t=1;
// cin>>t;
while(t--) solve();
return 0;
}
L2-045 堆宝塔
最新推荐文章于 2024-06-06 17:23:25 发布