这是题目
#include<bits/stdc++.h>
using namespace std;
struct ftuit
{
int id,kind;
}a[200001],c[200001];
int main()
{
bool l=1;
int n,num,b[200001],m=0;
int j=1;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i].kind ;
a[i].id =i+1;
}
for(int i=0;i<n;i++)
{
c[i].id =a[i].id ;
c[i].kind =a[i].kind ;
}
while(l==1)
{
num=0;
for(int i=0;i<n;i++)
{
if(a[i].kind ==a[i+1].kind)
{
if(i==0)
{
cout<<a[i].id <<" ";
b[num]=i;
num++;
a[i].id =NULL;
}
if(i!=0&&a[i].kind!=a[i-1].kind)
{
cout<<a[i].id<<" ";
b[num]=i;
num++;
a[i].id =NULL;
}
}
if(a[i].kind!=a[i-1].kind&&a[i].kind!=a[i+1].kind)
{
cout<<a[i].id<<" ";
b[num]=i;
num++;
a[i].id =NULL;
}
}
cout<<endl;
for(int i=0;i<n;i++)
{
if(a[i].id ==NULL)
{
for(;a[i+j].id ==NULL;j++)
{
}
a[i].id =a[i+j].id ;
a[i].kind =a[i+j].kind ;
a[i+j].kind =NULL;
a[i+j].kind =NULL;
}
}
n-=num;
if(n==0)
{
l=0;
}
}
return 0;
}