//在N个猴子中,从任意个猴子开始数1,2,3,数到3的猴子被驱除,
//下一个继续依次数1,2,3,每次数3的猴子都被驱除,
//剩余最后一个猴子就是大王
#include "stdafx.h"
#include "iostream.h"
#include "stdio.h"
#include "malloc.h"
typedef struct lnode
{
int a;
lnode *next;
}lnode;
bool init(lnode *l,int n)
{
lnode *p;
int i;
l=(lnode*)malloc(sizeof(lnode));
l->next=NULL;
for(i=1;i<=n;i++)
{
p=(lnode *)malloc(sizeof(lnode));
cin>>p->a;
p->next=l->next;
l->next=p;
}
int r=1;
lnode *q;
p=l->next;
while(n>1)
{
p=p->next;
n--;
}
p->next=l->next;
p=l->next;
q=l->next;
q=q->next;
while(p&&q)
{
if(r%2==0)
{
p->next=q->next;
q=q->next;
}
p=p->next;
q=q->next;
r++;
if(p==p->next)
{
cout<<"大王是"<<p->a<<endl;
return 1;
}
}
return true;
}
int main(int argc, char* argv[])
{
lnode *l;
int n;
cin>>n;
init(l,n);
return 0;
}