赞
踩
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:
给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。
输入第一行给出一个正整数 N(≤104),是参赛者人数。随后 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?
ps:暂时只有17分,第二个测试点不知道是啥
- #include<iostream>
- #include<stdio.h>
- #include<string>
- #include<algorithm>
- #include<math.h>
-
- using namespace std;
-
- //1059 C语言竞赛
-
- struct stu
- {
- int num;//排名
- int id;//ID
- };
-
- bool isright(int num)
- {
- if (num == 0 || num == 1)
- return false;
- for (int i = 2; i*i < num; i++)
- {
- if (num%i == 0)
- return false;
- }
- return true;
- }
-
- int main()
- {
- int n, i, j;
- int k;
- struct stu a[10003];
- int b[10003];
- int c[10003];
- int t = 0;
- cin >> n;
- for (i = 0; i < n; i++)
- {
- cin >> a[i].id;
- a[i].num = i+1;
- }
- cin >> k;
- for (i = 0; i < k; i++)
- {
- cin >> b[i];
- c[i] = b[i];
- }
-
- int flag = 0;
- int tt = 0;
-
- for (i = 0; i < k; i++)
- {
- for (j = 0; j < n; j++)
- {
- if (b[i] == a[j].id)
- {
- flag++;
- for (int h = 0; h < i; h++)
- {
- if (b[i] == c[h])
- {
- printf("%04d: Checked\n", b[i]);
- tt++;
- break;
- }
- }
- if (a[j].num == 1&& tt==0)
- {
- printf("%04d: Mystery Award\n", b[i]);
- break;
- }
- else if (isright(a[j].num) && tt == 0)
- {
- printf("%04d: Minion\n", b[i]);
- break;
- }
- else if ( tt == 0)
- {
- printf("%04d: Chocolate\n", b[i]);
- break;
- }
- }
-
- }
- if (flag==0)
- {
- printf("%04d: Are you kidding?\n",b[i]);
- }
- flag = 0;
- }
-
-
- return 0;
- }

ps:搞了两小时实在测不出第二个测试点是啥玩意,换了一种想法出做,我猜第二个测试点应该是判断素数和其他的那块
- #define _CRT_SECURE_NO_WARNINHS
- #define _CRT_SECURE_NO_DEPRECATE
-
- #include<iostream>
- #include<stdio.h>
- #include<string>
- #include<algorithm>
- #include<numeric>
- #include<functional>
- #include<vector>
- #include<stack>
- #include<math.h>
-
- using namespace std;
-
-
- //1059 C语言竞赛
- struct stu
- {
- int num;//排名
- int id;//ID
- };
-
- bool isright(int num)
- {
- if (num <= 1)
- return false;
- for (int i = 2; i*i < num; i++)
- {
- if (num%i == 0)
- return false;
- }
- return true;
- }
- int isPrime(int i) {
- if (i == 2) {
- return 1;
- }
- if (i % 2 == 0) {
- return 0;
- }
- for (int j = 2; j*j <= i; j++) {
- if (i % j == 0) {
- return 0;
- }
- }
- return 1;
- }
-
- int main()
- {
- int n, i, j;
- int k;
- int a[10003] = {0};
- int tt;
-
- cin >> n;
- for (i = 0; i < n; i++)
- {
- cin >> tt;
- a[tt] = i + 1;
- }
-
- cin >> k;
- for (i = 0; i < k; i++)
- {
- cin >> tt;
- if (a[tt] == -1)
- {
- printf("%04d: Checked\n", tt);
- continue;
- }
- if (a[tt] == 0)
- {
- printf("%04d: Are you kidding?\n", tt);
- continue;
- }
- if (a[tt]==1)
- {
- printf("%04d: Mystery Award\n", tt);
- a[tt] = -1;
- }
- else if (isPrime(a[tt]))
- {
- printf("%04d: Minion\n", tt);
- a[tt] = -1;
- }
- else
- {
- printf("%04d: Chocolate\n", tt);
- a[tt] = -1;
- }
- }
-
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。