解题代码
#include<iostream>
#include<algorithm>
using namespace std;
int a[100000], b[100000], c[100000];
int n, temp, max1, index, min1 = 1000000001;
int main() {
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < n; i++) {
if (a[i] >= max1) b[i] = 1;
max1 = max1 > a[i] ? max1 : a[i];
}
for (int i = n - 1; i >= 0; i--) {
if (b[i]==1 && a[i] <= min1) c[index++] = a[i];
min1 = min1 < a[i] ? min1 : a[i];
}
sort(c, c + index);
printf("%d\n", index);
for (int i = 0; i < index; i++) {
if (i) printf(" ");
printf("%d", c[i]);
}
printf("\n");
return 0;
}
测试结果
问题整理
1.基础的题目。