【PAT乙级】1059 C语言竞赛

题目链接:1059 C语言竞赛

思路

两个数组,下标为ID,一个记录名次,一个记录是否访问过。

代码

#include<iostream>
using namespace std;

int isPrime(int a){
    for(int i=2;i*i<=a;i++){
        if(!(a % i)) return 0;
    }
    return 1;
}

int main(){
    int a[10000] = {0}, b[10000] = {0};
    int N, K, c;
    scanf("%d",&N);
    for(int i=1;i<=N;i++){
        scanf("%d",&c);;
        a[c] = i;
    }
    scanf("%d",&K);
    for(int i=0;i<K;i++){
        scanf("%d",&c);
        if(c > 9999 || c < 0 || a[c] == 0) printf("%04d: Are you kidding?\n",c);
        else if(b[c] == 1) printf("%04d: Checked\n",c);
        else{
            if(a[c] == 1) printf("%04d: Mystery Award\n",c);
            else if(isPrime(a[c])) printf("%04d: Minion\n",c);
            else printf("%04d: Chocolate\n",c);
            b[c] = 1;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wulingyu501/article/details/108973887