吉大秦少游
2018-11-11 23:26
采纳率: 60%
浏览 1.3k

PAT乙级1059 C语言竞赛 测试点2通过不了,求助呀

 //1059 C语言竞赛 v1
#include <iostream>
#include <math.h>
using namespace std;

struct PaiMing{
    int rank;
    int id;
}pm[10001];     //save the competitors

int SushuJudge(int n){
    int flag=0,i;
    for(i=2;i<(int)sqrt(n)+1;i++){
        if(n%i==0)  flag=1;
    }
    return flag;    //flag==0,sushu
}

int main(){
    int N,i,K,j,tmp;    cin>>N;
    for(i=0;i<N;i++){
        pm[i].rank=i+1;
        cin>>pm[i].id;  //save the rank inf 
    }
    cin>>K; //save the check inf
    int cnt[10001]={0};

    for(i=0;i<K;i++){
        cin>>tmp;
        int cmp=0;
        for(j=0;j<N;j++){
            if(tmp==pm[j].id&&cnt[tmp]>0)   printf("%d: Checked\n",tmp);
            if(tmp==pm[j].id&&cnt[tmp]==0){
                printf("%04d: ",tmp);
                if(j==0)    printf("Mystery Award\n");  //rank first
                else if(SushuJudge(pm[j].rank)==0)  printf("Minion\n"); //rank sushu
                else    printf("Chocolate\n");  //others
                cnt[tmp]++; 
            }
            if(tmp!=pm[j].id){
                cmp++;
                if(cmp==N)  printf("%04d: Are you kidding?\n",tmp);
            }   
        }
    }
    return 0;
}
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题