#include <string.h>
#include <stdio.h>
#include <vector>
#include <queue>
#include <algorithm>
#include <map>
#include <string>
#include <iostream>
#include <math.h>
using namespace std;
const int inf=100000000000;
int N;
int A[100010];
int l[100010],r[100010];
int main()
{
scanf("%d",&N);
int maxl=-1,minr=inf;
for(int i=0;i<N;i++)
{
l[i]=maxl;
scanf("%d",&A[i]);
maxl=max(A[i],maxl);
}
for(int i=N-1;i>=0;i--)
{
r[i]=minr;
minr=min(A[i],minr);
}
vector<int> result;
for(int i=0;i<N;i++)
{
if(A[i]>=l[i]&&A[i]<=r[i])
{
result.push_back(A[i]);
}
}
sort(result.begin(),result.end());
printf("%d\n",result.size());
for(int i=0;i<result.size();i++)
{
if(i!=0)printf(" ");
printf("%d",result[i]);
}
printf("\n");
return 0;
}
PAT甲1101 Quick Sort(25 分)
最新推荐文章于 2021-02-28 16:11:08 发布