PAT 1059 C语言竞赛

PAT (Basic Level) Practice (中文)1059 C语言竞赛 测试点3过不了,求解答

img

#include 
using namespace std;
typedef long long ll;
bool isprime(int n)
{
    for (int i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return false;
    return true;
}
int main()
{
    int n;
    cin >> n;
    int id[10001] = {0};
    for (int i = 0; i < n; i++)
    {
        int x;
        cin >> x;
        id[x] = i + 1;
    }
    int k;
    cin >> k;
    while (k--)
    {
        int y;
        cin >> y;
        if (id[y])
        {
            if (id[y] == 1)
                printf("%04d: Mystery Award\n", y);
            else if (isprime(id[y]) && id[y] != -1)
            {
                id[y] = -1;
                printf("%04d: Minion\n", y);
            }
            else if (id[y] == -1)
                printf("%04d: Checked\n", y);
            else
            {
                id[y] = -1;
                printf("%04d: Chocolate\n", y);
            }
        }
        else
            printf("%04d: Are you kidding?\n", y);
    }
    return 0;
}