#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int N=100010,INF=2e9;
int n;
int a[N],l[N],r[N];
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) l[i]=max(l[i-1],a[i]);//a[i]~a[i]中的最大值
r[n+1]=INF;
for(int i=n;i;i--) r[i]=min(r[i+1],a[i]);//a[i]~a[N]中的最小值
vector<int> res;
for(int i=1;i<=n;i++)
if(l[i-1]<a[i]&&a[i]<r[i+1])
res.push_back(a[i]);
cout<<res.size()<<endl;
if(res.size()){
cout<<res[0];
for(int i=1;i<res.size();i++) cout<<" "<<res[i];
}
cout<<endl;
return 0;
}
[PAT 乙级] 1045 快速排序 (25 分)——(排序)2021-08-14
最新推荐文章于 2024-08-25 18:37:07 发布