#P14034. [PAIO 2025] Cards

[PAIO 2025] Cards

Description

你有 XX 张黑卡,YY 张白卡,以及 ZZ 张青卡(共 X+Y+ZX + Y + Z 张卡片)。你要将所有卡片按照任意顺序逐一放到一个单独的卡堆上。

每当你放下一个卡片后,检查卡堆:

  • 如果卡堆里现在已经至少有一种黑、白、青三色各一张,你可以得 11 分,随后将除了刚放下的那张卡片之外的所有卡片都销毁(从卡堆移除)。刚放下的那张卡片依然留在卡堆上,成为唯一的卡片。
  • 否则,什么都不发生。

你的任务是计算你能获得的最大得分。

实现细节

你需要实现一个名为 maximum_score 的过程,无需引入头文件 card.h,并且使用 C++17 或以上的语言规范提交本题:

int64 maximum_score(int32 X, int32 Y, int32 Z);
  • XX:黑色卡牌的数量;
  • YY:白色卡牌的数量;
  • ZZ:青色卡牌的数量;

该过程在程序开始时每个测试用例最多会被调用 100100 次。

该过程应返回你能获得的最大分数。

Input Format

无。

Output Format

无。

Hint

示例

示例 1

考虑如下调用:

maximum_score(2, 2, 1);

该过程应返回 22

示例 2

考虑如下调用:

maximum_score(4, 3, 4);

该过程应返回 55

样例判题器

样例判题器以如下格式读入输入:

  • 11 行:整数 TT,表示对 maximum_score 的调用次数
  • 接下来的 TT 行:每行有三个整数 X,Y,ZX, Y, Z

判题器调用 maximum_score(X, Y, Z) 并输出返回值。

提示

  • 1X1091 \le X \le 10^9
  • 1Y1091 \le Y \le 10^9
  • 1Z1091 \le Z \le 10^9

评分标准

  1. 子任务 1(4 分):X=Y=Z=1X = Y = Z = 1
  2. 子任务 2(7 分):X+Y+Z8X + Y + Z \le 8
  3. 子任务 3(15 分):X+Y+Z16X + Y + Z \le 16
  4. 子任务 4(25 分):X,Y,Z50X, Y, Z \le 50
  5. 子任务 5(12 分):X=Y=ZX = Y = Z
  6. 子任务 6(24 分):X<Y=ZX < Y = Z
  7. 子任务 7(13 分):无其他特殊约束

由 ChatGPT 5 翻译