样例都过了 但出不去循环
#include<bits/stdc++.h>
using namespace std;
int n, now, cnt;
struct node{
int val, id;
node *next;
};
node *head, *tail, *p, *temp;
int main(){
cin >> n;
int x;
cin >> x;
head = new node;
head -> id = 1;
head -> val = x;
head -> next = NULL;
tail = head;
for(int i = 2; i <= n; i++){
cin >> x;
p = new node;
p -> val = x;
p -> id = i;
p -> next = NULL;
tail -> next = p;
tail = p;
}
while(true){
if(cnt >= n) break;
temp = new node;
temp -> next = head;
now = -1;
while(temp -> next -> val != now && temp -> next != NULL){
now = temp -> next -> val;
cout << temp -> next -> id << ' ';
temp -> next = temp -> next -> next;
cnt++;
}
head = temp -> next;
while(temp -> next != NULL){
if(temp -> next -> val != now){
now = temp -> next -> val;
cout << temp -> next -> id << ' ';
temp -> next = temp -> next -> next;
cnt++;
}else{
temp = temp -> next;
}
}
cout << endl;
}
return 0;
}