PAT basic 1059

来源:互联网 发布:诺亚方舟 知乎 编辑:程序博客网 时间:2024/06/18 18:10
#include <cstdio>#include <set>#include <cmath>using namespace std;int ran[10000];bool isprime(int a) {    if(a <= 1) return false;    int Sqrt = sqrt((double)a);    for(int i = 2; i <= Sqrt; i++) {        if(a % i == 0)            return false;    }    return true;}int main() {    int n, k;    scanf("%d", &n);    for(int i = 0; i < n; i++) {        int id;        scanf("%d", &id);        ran[id] = i + 1;    }    scanf("%d", &k);    set<int> ss;    for(int i = 0; i < k; i++) {        int id;        scanf("%d", &id);        printf("%04d: ", id);        if(ran[id] == 0) {            printf("Are you kidding?\n");            continue;        }        if(ss.find(id) == ss.end()) {            ss.insert(id);        } else {            printf("Checked\n");            continue;        }        if(ran[id] == 1) {            printf("Mystery Award\n");        }else if(isprime(ran[id])) {            printf("Minion\n");        }else {            printf("Chocolate\n");        }    }    return 0;}/*ran数组标记每个id对应的排名,集合ss存储所有已经询问过的id,如果发现当前id已经出现在ss中,则输出“Checked”,如果ran[id] == 0说明当前id不在排名列表中,所以输出“Are you kidding?”,如果ran[id]为1则输出“Minion”,如果ran[id]为素数则输出“Mystery Award”,否则输出“Chocolate”*/
原创粉丝点击