目录
1,题目描述
- BIG collection of students' research papers:学生研究论文大集;
Sample Input:
6
1111
6666
8888
1234
5555
0001
6
8888
0001
1111
2222
8888
2222
Sample Output:
8888: Minion
0001: Chocolate
1111: Mystery Award
2222: Are you kidding?
8888: Checked
2222: Are you kidding?
题目大意
根据每个人不同的排名和前来查询的人的id,输出不同的字符串。
2,思路
每个人查询过后(除了不在名单中的人),排名置为-1。
0:Are you kidding?
1:Mystery Award
-1:Checked
质数(prime):Minion
其他:Chocolate
3,AC代码
#include<bits/stdc++.h>
using namespace std;
int ans[10006];
unordered_set<int> table;
bool isPrime(int x){
if(x <= 1) return false;
for(int i = 2; i <= sqrt(x); i++){
if(x % i == 0)
return false;
}
return true;
}
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
int N, K, id;
cin>>N;
for(int i = 1; i <= N; i++){
cin>>id;
ans[id] = i;
}
cin>>K;
for(int i = 0; i < K; i++){
cin>>id;
if(ans[id] == 1){
printf("%04d: Mystery Award\n", id);
ans[id] = -1;
}
else if(ans[id] == 0)
printf("%04d: Are you kidding?\n", id);
else if(ans[id] == -1){
printf("%04d: Checked\n", id);
ans[id] = -1;
}
else if(isPrime(ans[id])){
printf("%04d: Minion\n", id);
ans[id] = -1;
}
else{
printf("%04d: Chocolate\n", id);
ans[id] = -1;
}
}
return 0;
}
4,解题过程
一发入魂