当前位置:   article > 正文

PAT (Basic Level) Practice 1059 C语言竞赛_pat竞赛

pat竞赛

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(不能多吃多占)。

输入样例:

  1. 6
  2. 1111
  3. 6666
  4. 8888
  5. 1234
  6. 5555
  7. 0001
  8. 6
  9. 8888
  10. 0001
  11. 1111
  12. 2222
  13. 8888
  14. 2222

输出样例:

  1. 8888: Minion
  2. 0001: Chocolate
  3. 1111: Mystery Award
  4. 2222: Are you kidding?
  5. 8888: Checked
  6. 2222: Are you kidding?

 ps:暂时只有17分,第二个测试点不知道是啥

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<string>
  4. #include<algorithm>
  5. #include<math.h>
  6. using namespace std;
  7. //1059 C语言竞赛
  8. struct stu
  9. {
  10. int num;//排名
  11. int id;//ID
  12. };
  13. bool isright(int num)
  14. {
  15. if (num == 0 || num == 1)
  16. return false;
  17. for (int i = 2; i*i < num; i++)
  18. {
  19. if (num%i == 0)
  20. return false;
  21. }
  22. return true;
  23. }
  24. int main()
  25. {
  26. int n, i, j;
  27. int k;
  28. struct stu a[10003];
  29. int b[10003];
  30. int c[10003];
  31. int t = 0;
  32. cin >> n;
  33. for (i = 0; i < n; i++)
  34. {
  35. cin >> a[i].id;
  36. a[i].num = i+1;
  37. }
  38. cin >> k;
  39. for (i = 0; i < k; i++)
  40. {
  41. cin >> b[i];
  42. c[i] = b[i];
  43. }
  44. int flag = 0;
  45. int tt = 0;
  46. for (i = 0; i < k; i++)
  47. {
  48. for (j = 0; j < n; j++)
  49. {
  50. if (b[i] == a[j].id)
  51. {
  52. flag++;
  53. for (int h = 0; h < i; h++)
  54. {
  55. if (b[i] == c[h])
  56. {
  57. printf("%04d: Checked\n", b[i]);
  58. tt++;
  59. break;
  60. }
  61. }
  62. if (a[j].num == 1&& tt==0)
  63. {
  64. printf("%04d: Mystery Award\n", b[i]);
  65. break;
  66. }
  67. else if (isright(a[j].num) && tt == 0)
  68. {
  69. printf("%04d: Minion\n", b[i]);
  70. break;
  71. }
  72. else if ( tt == 0)
  73. {
  74. printf("%04d: Chocolate\n", b[i]);
  75. break;
  76. }
  77. }
  78. }
  79. if (flag==0)
  80. {
  81. printf("%04d: Are you kidding?\n",b[i]);
  82. }
  83. flag = 0;
  84. }
  85. return 0;
  86. }

ps:搞了两小时实在测不出第二个测试点是啥玩意,换了一种想法出做,我猜第二个测试点应该是判断素数和其他的那块 

  1. #define _CRT_SECURE_NO_WARNINHS
  2. #define _CRT_SECURE_NO_DEPRECATE
  3. #include<iostream>
  4. #include<stdio.h>
  5. #include<string>
  6. #include<algorithm>
  7. #include<numeric>
  8. #include<functional>
  9. #include<vector>
  10. #include<stack>
  11. #include<math.h>
  12. using namespace std;
  13. //1059 C语言竞赛
  14. struct stu
  15. {
  16. int num;//排名
  17. int id;//ID
  18. };
  19. bool isright(int num)
  20. {
  21. if (num <= 1)
  22. return false;
  23. for (int i = 2; i*i < num; i++)
  24. {
  25. if (num%i == 0)
  26. return false;
  27. }
  28. return true;
  29. }
  30. int isPrime(int i) {
  31. if (i == 2) {
  32. return 1;
  33. }
  34. if (i % 2 == 0) {
  35. return 0;
  36. }
  37. for (int j = 2; j*j <= i; j++) {
  38. if (i % j == 0) {
  39. return 0;
  40. }
  41. }
  42. return 1;
  43. }
  44. int main()
  45. {
  46. int n, i, j;
  47. int k;
  48. int a[10003] = {0};
  49. int tt;
  50. cin >> n;
  51. for (i = 0; i < n; i++)
  52. {
  53. cin >> tt;
  54. a[tt] = i + 1;
  55. }
  56. cin >> k;
  57. for (i = 0; i < k; i++)
  58. {
  59. cin >> tt;
  60. if (a[tt] == -1)
  61. {
  62. printf("%04d: Checked\n", tt);
  63. continue;
  64. }
  65. if (a[tt] == 0)
  66. {
  67. printf("%04d: Are you kidding?\n", tt);
  68. continue;
  69. }
  70. if (a[tt]==1)
  71. {
  72. printf("%04d: Mystery Award\n", tt);
  73. a[tt] = -1;
  74. }
  75. else if (isPrime(a[tt]))
  76. {
  77. printf("%04d: Minion\n", tt);
  78. a[tt] = -1;
  79. }
  80. else
  81. {
  82. printf("%04d: Chocolate\n", tt);
  83. a[tt] = -1;
  84. }
  85. }
  86. return 0;
  87. }

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号