A1116
Description:
- 排名第一:Mystery Award
- 排名为素数:Minion
- 其他排名:Chocolate
按以上规律输出首次查询到该人的结果,再次查询输出:Checked;查无此人的话,无论几次查询都输出:Are you kidding?
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 1e4+5;
int ranklist[maxn], n;
bool isprime(int n){
if(n == 2) return true;
for(int i = 2; i * i <= n; i++)
if(n % i == 0) return false;
return true;
}
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
scanf("%d", &n);
int id, k;
for(int i = 1; i <= n; i++){
scanf("%d", &id);
ranklist[id] = i;
}
scanf("%d", &k);
for(int i = 0; i < k; i++){
scanf("%d", &id);
printf("%04d: ", id);
if(ranklist[id] == 0){
printf("Are you kidding?\n");
continue;
}
if(ranklist[id] == -1) printf("Checked\n");
else if(ranklist[id] == 1) printf("Mystery Award\n");
else if(isprime(ranklist[id])) printf("Minion\n");
else if(!isprime(ranklist[id]))printf("Chocolate\n");
ranklist[id] = -1;
}
return 0;
}