#include
using namespace std;
struct NODE
{
int v;
NODE* pNext;
NODE* pPrev;
} *p,*p1,*pt;
int n,k,m,t;
NODE* CreateNewNode(int v)
{
NODE* pNewNode=new NODE();
pNewNode->pNext=NULL;
pNewNode->pPrev=NULL;
pNewNode->v=v;
return pNewNode;
}
void Insert(int one)
{
p1=CreateNewNode(one);
pt=p1;
for(int i=1;i {
p=CreateNewNode(i+one);
pt->pNext=p;
p->pPrev=pt;
pt=p;
}
p=CreateNewNode(n-1+one);
pt->pNext=p;
p->pPrev=pt;
p->pNext=p1;
p1->pPrev=p;
}
void Remove(NODE* r)
{
(r->pPrev)->pNext=r->pNext;
(r->pNext)->pPrev=r->pPrev;
delete r;
}
int main()
{
cout<<"input: n k m t"< scanf("%d %d %d %d",&n,&k,&m,&t);
Insert(k);
p=p1->pPrev;
int count=0;
int arrow=0;
int c=0;
while(count {
if(arrow==0) //顺时针
{
p=p->pNext;
c++;
if(c==m)
{
cout<v<<" ";
p=p->pNext;
Remove(p->pPrev);
arrow=1;
c=0;
count++;
}
}
else //逆时针
{
p=p->pPrev;
c++;
if(c==t)
{
cout<v<<" ";
p=p->pPrev;
Remove(p->pNext);
arrow=0;
c=0;
count++;
}
}
}
return 0;
}