CF2156A.Pizza Time

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Pizza Time

题目描述

Hao 和 Alex 是好朋友。在一起赢得编程大赛后,他们获得了一个巨大的披萨作为奖励。

一开始,他们有 nn 块披萨。每一天,都会重复以下过程:

  • 如果剩余的披萨不超过 22 块,Alex 会把所有剩下的披萨都吃掉。

  • 否则,设当前披萨数量为 mmm3m \ge 3)。Hao 将这些披萨分为三组,组数分别为 m1m_1m2m_2m3m_3,满足:

    $$m_1 + m_2 + m_3 = m,\quad 1 \le m_1 \le m_2 \le m_3$$

    然后:

    • Hao 吃掉 m1m_1 块(最小的那组)。
    • Alex 吃掉 m2m_2 块(中间的那组)。
    • 剩余的 m3m_3 块(最大的一组)留到第二天继续吃。

你的任务是,计算在每次分组都最优选择的情况下,Hao 能吃到的最大披萨块数总和。

输入格式

每个测试点包含多个测试用例。第一行包含测试用例数 tt1t5001 \le t \le 500)。测试用例的描述如下。

每个测试用例仅有一行,包含一个整数 nn3n1093 \le n \le 10^9),表示初始披萨块数。

注意所有测试用例的 nn 之和没有额外限制。

输出格式

对于每组测试用例,输出一个单独的整数,表示 Hao 能吃到的最大披萨块数。

说明/提示

在第一个测试用例中,Hao 最多可以吃 33 块披萨,具体分配如下:

  1. 分为 m1=2m_1=2m2=3m_2=3m3=3m_3=3,Hao 吃 22 块,Alex 吃 33 块,剩下 33 块留到第二天。
  2. 分为 m1=1m_1=1m2=1m_2=1m3=1m_3=1,Hao 吃 11 块,Alex 吃 11 块,剩下 11 块留到第二天。
  3. 只剩 11 块,由 Alex 吃掉。

在第二个测试用例中,Hao 最多可以吃 11 块披萨:

  1. 分为 m1=1m_1=1m2=1m_2=1m3=2m_3=2,Hao 吃 11 块,Alex 吃 11 块,剩下 22 块留到第二天。
  2. 只剩 22 块,由 Alex 吃掉。

由 ChatGPT 5 翻译

样例

3
8
4
3
3
1
1

在线编程 IDE

建议全屏模式获得最佳体验