题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805269828059136
一遍过
注意点
#include<cstdio>#include<string>#include<vector>#include<iostream>#include<map>using namespace std;map<string, int> m;vector<bool> is_prime(10010, true);void get_prime(){is_prime[1] = false;for(int i = 2; i < 10010; i++){if(is_prime[i] == true){for(int j = 2 * i; j < 10010; j += i){is_prime[j] = false;}}}}int main(){get_prime();int n, k, check[10010] = {0};string temp;scanf("%d", &n);for(int i = 1; i <= n; i++){cin>>temp;m[temp] = i;check[i] = 1;}scanf("%d", &k);for(int i = 0; i < k; i++){cin>>temp;cout<<temp + ": ";if(m.find(temp) == m.end()){printf("Are you kidding?\n");} else {if(check[m[temp]] == 0) printf("Checked\n");else if(check[m[temp]] == 1){if(m[temp] == 1) printf("Mystery Award\n");else if(is_prime[m[temp]])printf("Minion\n");else printf("Chocolate\n");check[m[temp]] = 0;}}}return 0;}
