当前位置:   article > 正文

开火车

开火车

输入:

10,2,5,6,13,11,11,4,10,8,12,5,4,1,8,1,7,12,4,13,6,9,9,9,5,7

6,3,13,8,2,3,7,3,2,2,12,11,10,6,10,1,1,12,3,5,7,11,13,4,8,9

输出:

Byte

说明:最终小Byte获得31张牌,小Dance获得19张牌,剩下两张点数为6,9的牌。

  1. void main()
  2. {
  3. B = D = 0;
  4. vector<int> b = { 10,2,5,6,13,11,11,4,10,8,12,5,4,1,8,1,7,12,4,13,6,9,9,9,5,7 };
  5. vector<int> d = { 6,3,13,8,2,3,7,3,2,2,12,11,10,6,10,1,1,12,3,5,7,11,13,4,8,9 };
  6. vector<int> a(60, 0);
  7. int c = 0;
  8. for (int i = 0; i<26; i++) {
  9. a[c++] = b[i];
  10. for (int j = c - 2; j >= 0; j--) {
  11. if (a[j] == b[i]) {
  12. B += c - j;
  13. c = j;
  14. }
  15. }
  16. a[c++] = d[i];
  17. for (int j = c - 1; j >= 0; j--) {
  18. if (a[j] == d[i]) {
  19. D += c - j;
  20. c = j;
  21. }
  22. }
  23. }
  24. if (B == D) printf("Draw\n");
  25. else if (B > D) printf("Byte\n");
  26. else printf("Dance\n");
  27. }

总结:添加到一个新的数组,添加时要进行从后往前的查找,第一个重复的数字就是要赢得的牌序列,然后从这个位置重新覆盖新的数组序列就可以(这个操作就相当于对牌进行了删除)。

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

闽ICP备14008679号