题解
频繁的报段错误。最后加了一个回车符号。明明没有违背题意。。。
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int n;
int main() {
scanf("%d", &n);
vector<int> a(n), b(n), t;
for(int i = 0; i < n; ++i) {
scanf("%d", &a[i]);
b[i] = a[i];
}
sort(a.begin(), a.end());
int maxn = 0;
for(int i = 0; i < n; ++i) {
if(a[i] == b[i] && a[i] > maxn) {
t.push_back(a[i]);
}
if(b[i] > maxn) maxn = b[i]; //获取左边最大数.
}
printf("%d\n", t.size());
for(int i = 0; i < t.size(); ++i) printf("%d%c", t[i], i == t.size() - 1 ? '\n' : ' ');
if(t.size() == 0) printf("\n");
return 0;
}