代码:
#include<iostream>
#include<queue>
#include<map>
using namespace std;
struct node{
int L,R,NUM;
};
queue < node > Q;
int t,n;
int main(){
scanf("%d",&n);
int flag=2;
for(int i=1;i<=n;i++){
scanf("%d",&t);
if(t!=flag){
Q.push(node{i,i,t});
flag=t;
}else{
Q.back().R=i;
}
}
while(!Q.empty()){
int kkk=Q.size();
flag=2;
for(int i=1;i<=kkk;i++){
if(Q.front().NUM!=flag){
printf("%d ",Q.front().L);
Q.front().L++;
flag=Q.front().NUM;
}
if(Q.front().L<=Q.front().R){
Q.push(Q.front());
}
Q.pop();
}
printf("\n");
}
return 0;
}
#8#8TLE