Problem Description
元宵节到了,cyk 表示对 UMR 不服,于是他们进行了一场游戏:
- 他们面前有 n 个数,玩家轮流每次从这 n 个数中挑选出一个数拿走。
- 玩家选取的数字大小不能超过上一次玩家所拿的数的大小(譬如,上一个玩家拿了 3,那么下一次玩家只能选择 3, 2, …)。
- 当一名玩家无法挑选(没有数字了,或者剩下的数字都比上次玩家挑选的大)的时候则该玩家输掉比赛。
今天的比赛是 UMR 先手,两个人都足够聪明,然后 UMR 能不能够赢得比赛呢?
Input
输入数据有多组(数据组数不超过 55),到 EOF 结束。
第一行输入一个整数数 n (1 <= n <= 1000) 表示游戏开始时可以挑选的数的总个数。
第二行 n 个以空格分隔的整数,每个数的范围属于 [1, 1000]。
Output
对于每组数据:
- 如果 UMR 赢了,输出 "a ha ! cyk , too young too simple sometimes native !"。
- 如果 cyk 赢了, 输出 "en heng UMR , you also have today !"。
输出均不包括引号。
Example Input
4
2 3 3 3
5
1 2 3 4 5
2
1 1
Example Output
a ha ! cyk , too young too simple sometimes native !
a ha ! cyk , too young too simple sometimes native !
en heng UMR , you also have today !
#include<stdio.h>
int a[1001];
void qqsort(int left,int right)
{
int i,j,mid;
i=left; j=right; mid=a[i];
if(i>=j)
return ;
while(i<j)
{
while(i<j&&a[j]>=mid)
j--;
a[i]=a[j];
while(i<j&&a[i]<=mid)
i++;
a[j]=a[i];
}
a[i]=mid;
qqsort(left,i-1);
qqsort(j+1,right);
}
int main()
{
int i,j,n,sum;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
qqsort(0,n-1);
for(i=0;i<n;i+=sum)
{
sum=1;
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
sum++;
}
if(sum%2)
{
printf("a ha ! cyk , too young too simple sometimes native !\n");
break;
}
}
if(i>=n)
{
printf("en heng UMR , you also have today !\n");
}
}
return 0;
}