Link
#include<bits/stdc++.h>
using namespace std;
struct basket{
int len,head,lock=0;
} a[300010];
int b[300010],m=1,n,i=0,count=0,k,j=1,l;
int main(){
scanf("%d",&n);
scanf("%d",&b[1]);
a[1].head=1; a[1].len=1; k=1; a[0].len=0; a[0].lock=0;
for(i=2;i<=n;i++)
{
scanf("%d",&b[i]);
if(b[i]==b[i-1]) a[j].len++;
else{
a[++j].head=i;
a[j].len=1;
k++;
}
}
l=k;
while(l!=0)
{
l=0;
for(i=1;i<=k;i++)
{
if(a[i].len&&a[i].lock==0)
{
printf("%d ",a[i].head);
a[i].head++;
a[i].len--;
}
}
printf("\n");
int p;
for(i=1;i<=k;i++)
{
if(a[i].len==0)
{
a[i+1].lock=a[i-1].len+a[i-1].lock;
}
if(a[i].len)
{
l++;
p=i;
}
}
k=p;
}
return 0;
}