注意当0个pivot时,第二行输出空行
//
// main.cpp
// PATA1101
//
// Created by Phoenix on 2018/2/22.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 100010;
int num[maxn], pre[maxn], post[maxn];
int main(int argc, const char * argv[]) {
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
int MAX = -1, MIN = 1000000001;
for(int i = 0; i < n; i++) {
if(num[i] > MAX) {
MAX = num[i];
}
if(num[n - 1 - i] < MIN) {
MIN = num[n - 1 - i];
}
pre[i] = MAX;
post[n - 1 - i] = MIN;
}
int k = 0;
for(int i = 0; i < n; i++) {
if(num[i] >= pre[i] && num[i] <= post[i]) {
k++;
}
}
printf("%d\n", k);
int j = 0;
for(int i = 0; i < n; i++) {
if(num[i] >= pre[i] && num[i] <= post[i]) {
printf("%d", num[i]);
if(j < k - 1) printf(" ");
j++;
}
}
printf("\n");
return 0;
}
784

被折叠的 条评论
为什么被折叠?



