#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;
const int INF = 1000000007;
const int N = 100010;
int a[N];
int la[N];
int flag[N];
int ans[N];
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
int n;
cin>>n;
int ma=0;
for(int i=0;i<n;i++){
cin>>a[i];
ma=max(ma,a[i]);
if(ma==a[i]) flag[i]=1;
}
int mm=INF;
int cnt=0;
for(int i=n-1;i>=0;i--){
mm=min(mm,a[i]);
if(mm==a[i] && flag[i]==1)
{
ans[cnt++]=a[i];
}
}
cout<<cnt<<endl;
for(int i=cnt-1;i>=0;i--){
cout<<ans[i];
if(i) cout<<" ";
}
cout<<endl;
return 0;
}
【PAT】1101. Quick Sort
最新推荐文章于 2019-09-13 20:42:32 发布