#include<stdio.h>
#include<limits.h>
#include<stdlib.h>
int cmp(const void *a,const void *b){
return *((int*)a)-*((int*)b);
}
int main(){
int nums[100000],n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",nums+i);
}
int flag[100000]={};
int lmax=0;
for(int i=0;i<n;i++){
if(nums[i]>=lmax){
lmax=nums[i];
}else{
flag[i]|=1;
}
}
int rmin=INT_MAX;
for(int i=n-1;i>=0;i--){
if(nums[i]<=rmin){
rmin=nums[i];
}else{
flag[i]|=1;
}
}
int cnt=0,sel[100000];
for(int i=0;i<n;i++){
if(!flag[i]){
sel[cnt++]=nums[i];
}
}
qsort(sel,cnt,sizeof(int),cmp);
printf("%d\n",cnt);
for(int i=0;i<cnt;i++){
if(i) putchar(' ');
printf("%d",sel[i]);
}
putchar('\n');
return 0;
}
PAT(Basic Level)_1045_快速排序
最新推荐文章于 2024-02-25 00:06:31 发布