QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 2048 MB Total points: 100 Difficulty: [show]

#14514. 卡牌

Statistics

你有 $X$ 张黑色卡牌、$Y$ 张白色卡牌和 $Z$ 张青色卡牌(共 $X + Y + Z$ 张)。你将按照自己选择的任意顺序,将所有卡牌一张接一张地放入一个单叠牌堆中。

在放入每张卡牌后,检查牌堆:

  • 如果牌堆(此时)包含三种颜色中每种颜色的卡牌至少各一张,你将获得 $1$ 分,然后除你刚刚放入的那张卡牌外,牌堆中的所有其他卡牌都将被销毁(从牌堆中移除)。你刚刚放入的那张卡牌将作为牌堆中唯一的卡牌保留下来。
  • 否则,什么也不会发生。

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

实现细节

你需要实现一个名为 maximum_score 的函数:

int64 maximum_score(int32 X, int32 Y, int32 Z);
  • $X$:黑色卡牌的数量;
  • $Y$:白色卡牌的数量;
  • $Z$:青色卡牌的数量;
  • 在程序开始时,对于每个测试用例,此函数被调用的次数不会超过 $100$ 次。

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

数据范围

  • $1 \le X \le 10^9$
  • $1 \le Y \le 10^9$
  • $1 \le Z \le 10^9$

子任务

  1. 子任务 1(4 分):$X = Y = Z = 1$
  2. 子任务 2(7 分):$X + Y + Z \le 8$
  3. 子任务 3(15 分):$X + Y + Z \le 16$
  4. 子任务 4(25 分):$X, Y, Z \le 50$
  5. 子任务 5(12 分):$X = Y = Z$
  6. 子任务 6(24 分):$X < Y = Z$
  7. 子任务 7(13 分):无附加限制

样例

样例输入 1

maximum_score(2, 2, 1);

样例输出 1

2

样例输入 2

maximum_score(4, 3, 4);

样例输出 2

5

样例评测程序

样例评测程序将按照以下格式读取输入:

  • 第 1 行:一个整数 $T$,表示调用 maximum_score 的次数。
  • 接下来的 $T$ 行:每行三个整数 $X$、$Y$ 和 $Z$。

样例评测程序将调用 maximum_score(X, Y, Z) 并打印返回值。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.