#include<bits/stdc++.h>
using namespace std;
vector< vector<int> >q;
vector<int>v;
int n,p=0,np=0;
int a[10005],na[10005];
int head[10005]={},tail[10005]={};
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
cin>>n;
if(n==0)return 0;
cin>>a[0];
v.push_back(a[0]);
for(int i=1;i<n;i++){
cin>>a[i];
if(a[i]<a[i-1]){
p++;
q.push_back(v);
while(!v.empty()){
v.pop_back();
}
}
tail[p]++;
v.push_back(a[i]);
}
int num=n;
q.push_back(v);
p++;
cout<<p<<'\n';
for(int i=0;i<p;i++){
for(int j=0;j<tail[i];j++){
cout<<q[i][j]<<' ';
}
cout<<'\n';
}
cout<<'\n';
while(num--){
int mn=0;
for(int i=0;i<p;i++){
if(head[i]>tail[i])continue;
if(q[i][head[i]]<q[mn][head[mn]])mn=i;
}
cout<<q[mn][head[mn]]<<' ';
na[np++]=q[mn][head[mn]];
head[mn]++;
}
// for(int i=0;i<n;i++){
// cout<<na[i];
// }
}
运行这个代码,vector所存储的总会莫名没掉一个元素,而最下面输出又会少掉其他元素,不知道是怎么回事,求大佬调试