题目
https://pintia.cn/problem-sets/994805342720868352/problems/994805355358306304
题意
根据给定的排名位次,对K个数进行判断并做出相应输出
代码解析
要注意判断的顺序,要先判断是否存在,再判断是否重复,最后判断具体排名
注意要输出4位数字
AC代码
#include<bits/stdc++.h>
using namespace std;
int isprime(int x)
{
if(x<=1) return 0;
else if(x==2) return 1;
for(int i=2;i<=sqrt(x);i++)
if(x%i==0) return 0;
return 1;
}
int main()
{
int n,k,num;
cin>>n;
map<int,int> rank,vis;
for(int i=1;i<=n;i++)
{
cin>>num;
rank[num]=i;
}
cin>>k;
while(k--)
{
cin>>num;
printf("%04d: ",num);
if(rank[num]==0) cout<<"Are you kidding?"<<endl;
else if(vis[num]) cout<<"Checked"<<endl;
else if(rank[num]==1) cout<<"Mystery Award"<<endl;
else if(isprime(rank[num])) cout<<"Minion"<<endl;
else cout<<"Chocolate"<<endl;
vis[num]=1;
}
}