关闭

1059. C语言竞赛(20)

标签: 编程PAT
64人阅读 评论(0) 收藏 举报
分类:

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?

分析
这里编号和名次都是10000以下的数字,我们可以建立一个长度为10000的数组初始化为0,把名次作为值,把ID作为下标。注意几个判断条件的依次顺序

#include <iostream>
#include <cstdio>
#include <cmath> 
using namespace std;

bool IsOdd(int k){
    if(k<=1)return false;
    if(k==2)return true;
    else{
        int m=sqrt(k);
        for(int i=2;i<=m;i++){
            if(k%i==0)return false;
        }
    }
    return true;
}

int main()
{
    int Score[10000]={0};
    int N;
    cin>>N;
    for(int i=0;i<N;i++){
        int tmp;
        cin>>tmp;
        Score[tmp]=i+1;
    }
    int K;
    cin>>K;
    for(int i=0;i<K;i++){
        int tmp;
        cin>>tmp;
        if(tmp<1000)cout<<"0";
        if(tmp<100)cout<<"0";
        if(tmp<10)cout<<"0";
        cout<<tmp<<": ";

        if(Score[tmp]==-2){
            cout<<"Checked"<<endl;
        }
        if(Score[tmp]==0)cout<<"Are you kidding?"<<endl;
        if(Score[tmp]==1){
            cout<<"Mystery Award"<<endl;
            Score[tmp]=-2;
        }
        if(Score[tmp]>0){
            if(IsOdd(Score[tmp])){
                cout<<"Minion"<<endl;
                Score[tmp]=-2;
            }else{
                cout<<"Chocolate"<<endl;
                Score[tmp]=-2;
            }
        }

    }
    return 0;
 } 
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

信息学奥林匹克竞赛-编程语言

主流编程语言简介  计算机语言的种类非常的多,总的来说可以分成 机器语言,汇编语言,高级语言 三大类。 机器语言:是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们...
  • sjtu081200
  • sjtu081200
  • 2015-11-17 13:15
  • 2706

哈尔滨理工大学第四届ACM程序设计竞赛J: xiaodao 我爱你!

Description 自从见到 xiaodao 的第一眼起,我就不可救药的爱上了她。 能和xiaodao一起玩儿游戏,真是荣幸之至。xiaodao爱玩抓石子,我果断就跟着混啦。 ...
  • libin56842
  • libin56842
  • 2014-03-31 19:26
  • 2926

编程马拉松大赛试题及代码(C++实现)

前段时间牛客网举办了编程马拉松大赛,总共86道题,20天内完成。题目难度难中易都有。我发现这些题目,主要关注性能和思维。很多题目用常规方法是不能通过时间要求的。题目是来自于各大oj以及面试题。所以非常...
  • zhoubin1992
  • zhoubin1992
  • 2015-07-21 13:51
  • 2703

1059. C语言竞赛(20)

本题要求:C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 排名为素数的学生将...
  • linglian0522
  • linglian0522
  • 2017-04-11 10:07
  • 111

1059. C语言竞赛(20)

1059. C语言竞赛(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN,...
  • PriestessofBirth
  • PriestessofBirth
  • 2017-10-26 23:42
  • 94

1059. C语言竞赛(20)

C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 排名为素数的学生将赢得最好的...
  • gl486546
  • gl486546
  • 2016-09-12 15:56
  • 241

1059. C语言竞赛(20)

C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 排名为素数的学生将赢得最好的...
  • wanmeiwushang
  • wanmeiwushang
  • 2016-10-10 21:45
  • 972

PAT乙级 1059. C语言竞赛(20)

题目链接:https://www.patest.cn/contests/pat-b-practise/1059 1059. C语言竞赛(20) 时间限制 200 ...
  • qq_27474589
  • qq_27474589
  • 2017-07-31 08:10
  • 137

1059. C语言竞赛(20)

C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0. 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 1. 排名为素...
  • yuebowhu
  • yuebowhu
  • 2016-11-27 22:39
  • 243

1059. C语言竞赛(20)

题目描述 C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 排名为素数的学生将...
  • qq_34677945
  • qq_34677945
  • 2017-11-26 17:49
  • 51
    个人资料
    • 访问:515次
    • 积分:71
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档