https://www.luogu.com.cn/problem/P7912
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node{
int L,R,num;
};
int n,a;
queue<node> q;
signed main(){
scanf("%d",&n);
int now=2;
for(int i=1;i<=n;i++){
scanf("%d",&a);
if(a!=now){
node x={i,i,a};
q.push(x);
now=a;
}else{
q.back().R=i;
}
}
while(!q.empty()){
int k=q.size(),now=2;
for(int i=1;i<=k;i++){
if(q.front().num!=now){
printf("%d ",q.front().L);
q.front().L++;
now=q.front().num;
}
if(q.front().L<=q.front().R){
q.push(q.front());
}
q.pop();
}
printf("\n");
}
return 0;
}