PAT1116 Come on! Let’s C

原文:我的個人博客

原題鏈接

1116 Come on! Let’s C

思路

  題目已經按名次給定每個同學ID。用map<string,int>m來存儲每個同學獲得的稱號。第一名錶示爲1,排名爲素數排名的記爲2,其餘的記爲3.並在查詢的過程中,將已經查詢的記爲4.當然沒有出現的ID默認值即爲0.

代碼

#include <bits/stdc++.h>
using namespace std;
 
int isPrime(int x){
    if(x<=0) return 0;
    for(int i=2;i<=sqrt(x);i++){
        if(x%i==0) return 0;
    }
    return 1;
}
int main(){
    int n,k;
    string tmp;
    map<string,int>m;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>tmp;
        if(i==1) m[tmp] = 1;//Mystery Award
        else if(isPrime(i)) m[tmp] = 2;//Minion
        else m[tmp] = 3;//Chocolate
    }
    cin>>k;
    for(int i=0;i<k;i++){
        cin>>tmp;
        cout<<tmp<<": ";
        if(m[tmp]==1){
            cout<<"Mystery Award"<<endl; 
            m[tmp] = 4;//checked 
        }else if(m[tmp] == 2){
            cout<<"Minion"<<endl;
            m[tmp] = 4;
        }else if(m[tmp]==3){
            cout<<"Chocolate"<<endl;
            m[tmp] = 4;
        }else if(m[tmp]==4){
            cout<<"Checked"<<endl;
        }else{
            cout<<"Are you kidding?"<<endl; 
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章