当前位置:   article > 正文

华为OD机试真题-MVP争夺战【2023Q2】_华为od 星际篮球争霸赛、mvp争夺战

华为od 星际篮球争霸赛、mvp争夺战

题目描述:

在星球争霸篮球赛对抗赛中,强大的宇宙战队,希望每个人都能拿到MVP

MVP的条件是,单场最高分得分获得者,可以并列,所以宇宙战队决定在比赛中,尽可能让更多的队员上场,且让所有有得分的队员得分都相同。

然而比赛过程中的每一分钟的得分都只能由某一个人包揽。

输入描述:

输入第一行为一个数字t,表示有得分的分钟数( 1 <= t <= 50),第二行为t个数字,代表每一分钟的得分p(1 <= p <= 50)

输出描述:

输出有得分的队员都是MVP时最少的MVP得分。

补充说明:

 收起

示例1

输入:

9
5 2 1 5 2 1 5 2 1

输出:

6

说明:

样例解释:一共4人得分,分别都为6分
5 + 1
5 + 1
5 + 1
2 + 2  + 2

  1. public static void main(String[] args) {
  2. Scanner scanner = new Scanner(System.in);
  3. int sum = 0;
  4. int num = scanner.nextInt();
  5. int[] nums = new int[num];
  6. for (int i = 0; i < num; i++) {
  7. nums[i] = scanner.nextInt();
  8. sum += nums[i];
  9. }
  10. Arrays.sort(nums);
  11. int result = num;
  12. while (true) {
  13. if (sum % result != 0) {
  14. result--;
  15. continue;
  16. }
  17. int avg = sum / result;
  18. if (avg < nums[num-1]) {
  19. result--;
  20. continue;
  21. }
  22. boolean flag = false;
  23. for (int i = 0; i < result; i++) {
  24. int val = 0;
  25. for (int j = num - 1; j >= 0; j--) {
  26. if (nums[j] < 0) {
  27. continue;
  28. }
  29. if (val + nums[j] <= avg) {
  30. val += nums[j];
  31. nums[j] -= 100;
  32. if (val == avg) {
  33. break;
  34. }
  35. }
  36. }
  37. if (val != avg) {
  38. flag = true;
  39. break;
  40. }
  41. }
  42. if (flag) {
  43. for (int i = 0; i < num; i++) {
  44. if (nums[i] < 0) {
  45. nums[i] += 100;
  46. }
  47. }
  48. result--;
  49. continue;
  50. }
  51. System.out.println(avg);
  52. return;
  53. }
  54. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/450479
推荐阅读
相关标签
  

闽ICP备14008679号