加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

1059 C语言竞赛 (20 分)

发布时间:2020-12-15 04:47:47 所属栏目:百科 来源:网络整理
导读:C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶! 2、其他人将

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

0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。

1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!

2、其他人将得到巧克力。

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

输入格式:

输入第一行给出一个正整数?N(≤10?4??),是参赛者人数。随后?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?

分析:AC代码

#include

#include

using namespace std;

bool judge(int number) {

int m = sqrt(number);

if(number <= 1) {

return false;

} else {

for(int i = 2; i <= m; i++) {

if(number % i == 0) {

return false;

}

}

}

return true;

}

int main() {

int n;

cin >> n;

int a[10001] = {0};

for(int i = 0; i < n; i++) {

int num;

cin >> num;

a[num] = i + 1;

}

int m;

cin >> m;

for(int i = 0; i < m; i++) {

int num;

cin >> num;

if(a[num] == -1) {

printf("%04d: Checkedn",num);

} else if(a[num] == 1) {

printf("%04d: Mystery Awardn",num);

a[num] = -1;

} else if(judge(a[num])) {

printf("%04d: Minionn",num);

a[num] = -1;

} else if(a[num] == 0) {

printf("%04d: Are you kidding?n",num);

} else {

printf("%04d: Chocolaten",num);

a[num] = -1;

}

}

return 0;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读