如题
#include<bits/stdc++.h>
using namespace std;
int s[200086],n,w=1;
bool pd(){
int i;
for(i=2;i<=n;i++){
if(s[i-1]!=s[i]&&s[i]-1!=2&&s[i]-1!=2){
break;
}
}
if(i==n+1){
for(int j=1;j<=n;j++){
if(s[j]!=2)cout<<j<<' ';
}
cout<<endl;
return 0;
}
return 1;
}
void hs(){
int f;
for(int f=1;f<=n;f++)
if(s[f]!=2){
w=s[f];s[f]=2;cout<<f<<' ';break;
}
for(int i=f+1;i<=n;i++){
if(s[i]!=2&&s[i]!=w){
cout<<i<<' ';w=s[i];s[i]=2;
}
}cout<<endl;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&s[i]);
while(1){
if(pd())hs();
else return 0;
}
}