代码实现:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
typedef struct
{
int rank, isChecked;
}struction;
int isPrime(int n)
{
if (n == 2)return 1;
for (int i = 2; i <= sqrt(n); i++)if (n%i == 0)return 0;
return 1;
}
int main()
{
int N, K;
struction array[10000];
scanf("%d", &N);
for (int i = 0; i < 10000; i++)array[i].isChecked = -1;
for (int i = 0, cnt = 1; i < N; i++, cnt++)
{
int name;
scanf("%d", &name);
array[name].rank = cnt, array[name].isChecked = 0;
}
scanf("%d", &K);
for (int i = 0; i < K; i++)
{
int name;
scanf("%d", &name);
if (array[name].isChecked == 1)
printf("%04d: Checked\n", name);
else if (array[name].isChecked == -1)
printf("%04d: Are you kidding?\n",name);
else if (array[name].rank == 1)
printf("%04d: Mystery Award\n", name), array[name].isChecked = 1;
else if (isPrime(array[name].rank) == 1)
printf("%04d: Minion\n", name), array[name].isChecked = 1;
else if (array[name].rank > 2)
printf("%04d: Chocolate\n", name), array[name].isChecked = 1;
}
return 0;
}