while循环死循环了但不知道哪里出错,代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
struct node{
int num;
int id;
}a[N];
queue<int> q;
int cnt=0;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].num;
a[i].id=i;
q.push(i);
}
int x,y;
while(!q.empty())
{
if(q.size()==1)
{
cout<<q.front()<<endl;
break;
}
x=q.front();
q.pop();
y=q.front();
q.push(x);
if(a[x].num!=a[y].num)
{
cout<<a[y].id<<" ";
q.pop();
}
if(x>y) cout<<endl;
if(q.size()==1)
{
cout<<q.front()<<endl;
break;
}
}
return 0;
}