fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. int T;
  7. cin >> T; // 测试用例数量
  8. while (T--) {
  9. int n;
  10. cin >> n; // 回合数
  11. vector<int> s(n); // Bob的出拳序列
  12. // 统计Bob出拳中0、1、2的数量
  13. int bob0 = 0, bob1 = 0, bob2 = 0;
  14. for (int i = 0; i < n; ++i) {
  15. cin >> s[i];
  16. if (s[i] == 0) bob0++;
  17. else if (s[i] == 1) bob1++;
  18. else bob2++;
  19. }
  20. // Alice的出拳数量:a是0的数量,b是1的数量,c是2的数量
  21. int a, b, c;
  22. cin >> a >> b >> c;
  23.  
  24. int win = 0;
  25. // 按规则匹配:0胜2,1胜0,2胜1
  26. // 1. Alice用0胜Bob的2
  27. int match = min(a, bob2);
  28. win += match;
  29. a -= match; // 剩余0的数量
  30. bob2 -= match; // 剩余Bob的2
  31.  
  32. // 2. Alice用1胜Bob的0
  33. match = min(b, bob0);
  34. win += match;
  35. b -= match; // 剩余1的数量
  36. bob0 -= match; // 剩余Bob的0
  37.  
  38. // 3. Alice用2胜Bob的1
  39. match = min(c, bob1);
  40. win += match;
  41.  
  42. cout << win << endl;
  43. }
  44. return 0;
  45. }
Success #stdin #stdout 0.01s 5288KB
stdin
3
5
01201
221
3
222
300
4
0122
112
stdout
4
5
5