CF2156A Pizza Time
题目描述
Hao 和 Alex 是好朋友。在一起赢得编程大赛后,他们获得了一个巨大的披萨作为奖励。
一开始,他们有 $n$ 块披萨。每一天,都会重复以下过程:
- 如果剩余的披萨不超过 $2$ 块,Alex 会把所有剩下的披萨都吃掉。
- 否则,设当前披萨数量为 $m$($m \ge 3$)。Hao 将这些披萨分为三组,组数分别为 $m_1$、$m_2$、$m_3$,满足:
$$
m_1 + m_2 + m_3 = m,\quad 1 \le m_1 \le m_2 \le m_3
$$
然后:
- Hao 吃掉 $m_1$ 块(最小的那组)。
- Alex 吃掉 $m_2$ 块(中间的那组)。
- 剩余的 $m_3$ 块(最大的一组)留到第二天继续吃。
你的任务是,计算在每次分组都最优选择的情况下,Hao 能吃到的最大披萨块数总和。
输入格式
每个测试点包含多个测试用例。第一行包含测试用例数 $t$($1 \le t \le 500$)。测试用例的描述如下。
每个测试用例仅有一行,包含一个整数 $n$($3 \le n \le 10^9$),表示初始披萨块数。
注意所有测试用例的 $n$ 之和没有额外限制。
输出格式
对于每组测试用例,输出一个单独的整数,表示 Hao 能吃到的最大披萨块数。
说明/提示
在第一个测试用例中,Hao 最多可以吃 $3$ 块披萨,具体分配如下:
1. 分为 $m_1=2$、$m_2=3$、$m_3=3$,Hao 吃 $2$ 块,Alex 吃 $3$ 块,剩下 $3$ 块留到第二天。
2. 分为 $m_1=1$、$m_2=1$、$m_3=1$,Hao 吃 $1$ 块,Alex 吃 $1$ 块,剩下 $1$ 块留到第二天。
3. 只剩 $1$ 块,由 Alex 吃掉。
在第二个测试用例中,Hao 最多可以吃 $1$ 块披萨:
1. 分为 $m_1=1$、$m_2=1$、$m_3=2$,Hao 吃 $1$ 块,Alex 吃 $1$ 块,剩下 $2$ 块留到第二天。
2. 只剩 $2$ 块,由 Alex 吃掉。
由 ChatGPT 5 翻译