当前位置:   article > 正文

华为OJ,英雄联盟_每一场对战有10位玩家参与,分为两组,每组5人。每位玩家都有一个战斗力,代表着这位

每一场对战有10位玩家参与,分为两组,每组5人。每位玩家都有一个战斗力,代表着这位

题目描述:

英雄联盟是一款十分火热的对战类游戏。每一场对战有10位玩家参与,分为两组,每组5人。每位玩家都有一个战斗力,代表着这位玩家的厉害程度。为了对战尽可能精彩,我们需要把玩家们分为实力尽量相等的两组。一组的实力可以表示为这一组5位玩家的战斗力和。现在,给你10位玩家的战斗力,请你把他们分为实力尽量相等的两组。请你输出这两组的实力差。

解答要求 时间限制:1000ms, 内存限制:64MB

输入

10个整数(范围在[1,10000]之间)

输出

最小的实力差

样例

输入样例 1 复制

1 2 3 4 5 6 7 8 9 10

输出样例 1

1
  1. #include<stdio.h>
  2. #include<string.h>
  3. int main() {
  4. int a[10] = {0};
  5. int i = 0;
  6. int sum = 0;
  7. int all = 0;
  8. int c0, c1, c2, c3=0;
  9. int sum_all = 0;
  10. int chazhi = 0;
  11. int min = 10000;
  12. for (i = 0; i < 10; i++) {
  13. scanf_s("%d", &a[i]);
  14. }
  15. for (i = 0; i < 10; i++) {
  16. //printf("a[%d] is %d\r\n",i,a[i]);
  17. sum += a[i];
  18. //printf("sum is %d\r\n", sum);
  19. }
  20. //任意5个数组合,然后用all - 5个数组合
  21. for (c0 = 1; c0 < 10; c0++)
  22. for (c1 = c0 + 1; c1 < 10; c1++)
  23. for (c2 = c1 + 1; c2 < 10; c2++)
  24. for (c3 = c2 + 1; c3 < 10; c3++) {
  25. all = a[0] + a[c0] + a[c1] + a[c2] + a[c3];
  26. sum_all = sum - all;
  27. chazhi = abs(sum_all - all);
  28. if (min > chazhi) {
  29. min = chazhi;
  30. }
  31. }
  32. printf("%d\r\n", min);
  33. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/955163
推荐阅读
相关标签
  

闽ICP备14008679号