#include<iostream>
#include<queue>
#include<list>
using namespace std;
const int MAXN=2e5+25;
int n;
int a[MAXN];
list<int> tl;
list<pair<list<int>,bool>> lst;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(i>1&&a[i]==a[i-1]) lst.back().first.push_back(i);
else{
tl.push_back(i);
lst.push_back(make_pair(tl,a[i]));
tl.clear();
}
}
while(!lst.empty()){
for(auto it=lst.begin();it!=lst.end();it++){
if((*it).first.front()==0){
lst.erase(it);
continue;
}
cout<<(*it).first.front()<<' ';
(*it).first.pop_front();
if((*it).first.empty()) lst.erase(it);
}
cout<<'\n';
auto ita=lst.begin(),itb=lst.begin();
itb++;
while(itb!=lst.end()){
if((*ita).second==(*itb).second) (*ita).first.splice((*ita).first.end(),(*itb).first);
ita++;
itb++;
}
}
return 0;
}
万分感谢!