#include <iostream>
using namespace std;
class LNode
{
friend class List;
public:
LNode():m(0),next(0){}
private:
int m;
int num;
LNode *next;
};
class Head
{
friend class List;
public:
Head():top(0),rear(0){}
private:
LNode *top;
LNode *rear;
};
class List
{
public:
bool Insert(Head &p,int e);
bool traverse(Head &p,int m);
bool ss(Head &p)
{
int s=0;
LNode *q=p.top;
while(q)
{
cout<<q->m<<' ';
q=q->next;
s++;
if(s>10)
return true;
}
}
static int s;
};
int List::s=1 ;
bool List::traverse(Head &p,int m)
{
LNode *q=p.top;
int j=1;
while(q!=q->next)
{
j=1;
while(j!=m-1)
{
q=q->next;
j++;
}
LNode *h=q->next;
m=h->m;
cout<<h->num<<' ';
q->next=h->next;
q=h->next;
delete h;
}
return true;
}
bool List::Insert(Head &p,int e)
{
LNode *q=new LNode;
if(!q)
return false;
q->m=e;
q->num=s++;
if(p.top!=0&&p.rear!=0)
{
p.rear->next=q;
p.rear=q;
p.rear->next=p.top;
}
else
{
p.top=p.rear=q;
}
return true;
}
int main()
{
int n;
cin>>n;
int e;
Head p;
List l;
while(n--)
{
cin>>e;
l.Insert(p,e);
}
//l.ss(p);
l.traverse(p,5);
return 0;
}
~~~~juststeps