• PAT 1059. C语言竞赛


    PAT 1059. C语言竞赛

    C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:

    1. 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。
    2. 排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!
    3. 其他人将得到巧克力。

    给定比赛的最终排名以及一系列参赛者的ID,你要给出这些参赛者应该获得的奖品。

    输入格式:

    输入第一行给出一个正整数N(<=10000),是参赛者人数。随后N行给出最终排名,每行按排名顺序给出一位参赛者的ID(4位数字组成)。接下来给出一个正整数K以及K个需要查询的ID。

    输出格式:

    对每个要查询的ID,在一行中输出“ID: 奖品”,其中奖品或者是“Mystery Award”(神秘大奖)、或者是“Minion”(小黄人)、或者是“Chocolate”(巧克力)。如果所查ID根本不在排名里,打印“Are you kidding?”(耍我呢?)。如果该ID已经查过了(即奖品已经领过了),打印“ID: Checked”(不能多吃多占)。

    输入样例:

    6
    1111
    6666
    8888
    1234
    5555
    0001
    6
    8888
    0001
    1111
    2222
    8888
    2222
    

    输出样例:

    8888: Minion
    0001: Chocolate
    1111: Mystery Award
    2222: Are you kidding?
    8888: Checked
    2222: Are you kidding?
    

    代码如下

    #include<iostream>
    #include<iomanip>
    #include<math.h>
    using namespace std;
    int isprimer(int a){
    	int b=sqrt(a);
    	for(int i=2;i<=b;i++)
    	if(a%i==0) return 0;
    	return 1;
    }
    int main(){
    	int checked[10002]={0},rank[10002]={0},n,id;
    	cin>>n; 
    	for(int i=1;i<=n;i++){
    		cin>>id;
    		rank[id]=i;
    	}
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>id;
    		if(rank[id]==0) 
    		printf("%04d: Are you kidding?
    ",id);
    		else if(checked[id]==1) 
    		printf("%04d: Checked
    ",id);
    		else if(rank[id]==1) 
    		printf("%04d: Mystery Award
    ",id);
    		else if(isprimer(rank[id])==1)
    		printf("%04d: Minion
    ",id);
    		else
    		printf("%04d: Chocolate
    ",id);
    		checked[id]=1;
    	}
    	return 0;
    }
    
  • 相关阅读:
    python调用linux DBus
    python查看单个应用的内存
    Azkaban
    H2 数据库引擎
    【IDEA与sql执行计划】
    【用draw.io 绘制ER图,非鸭蛋型ER图~】
    MySQL&Oracle数据库进阶学习【未完】
    【关于Typora 在线图床配置】
    什么是文件描述符
    同步个人vs code 习惯性配置 到码云(Gitee)
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8137519.html
Copyright © 2020-2023  润新知