题目
思路
申请数组a存储排名,再分别对排名进行判断。如果输出过,就把排名标记为-1,所以先判断排名是否为-1。注意如果找不到就直接continue,就不让排名设为-1了。
代码
#include<iostream>
using namespace std;
const int N = 10010;
int a[N]={0};
bool isprime(int a)
{
for (int i = 2;i * i <= a;i++)
{
if (a % i == 0)
return false;
}
return true;
}
int main()
{
int n;
cin >> n;
int x;
for (int i = 1;i <= n;i++)
{
cin >> x;
a[x] = i; //a中存储排序
}
int k;
cin >> k;
while (k--)
{
int num;
cin >> num;
if (a[num] == -1)
{
printf("%04d: Checked\n", num);
}
else if (a[num] == 1)
printf("%04d: Mystery Award\n", num);
else if (a[num] == 0)
{
printf("%04d: Are you kidding?\n", num);
continue;
}
else if (isprime(a[num]))
{
printf("%04d: Minion\n", num);
}
else
{
printf("%04d: Chocolate\n", num);
}
a[num] = -1;
}
return 0;
}
160

被折叠的 条评论
为什么被折叠?



