CF1795C Tea Tasting
题目描述
一家茶叶制造商决定举办一次大规模的品茶活动。有 $n$ 种茶将由 $n$ 位品茶师品尝。茶的种类和品茶师都从 $1$ 到 $n$ 编号。制造商为第 $i$ 种茶准备了 $a_i$ 毫升。第 $j$ 位品茶师一次最多能喝 $b_j$ 毫升茶。
品茶活动将分步骤进行。在第一步中,第 $i$ 位品茶师品尝第 $i$ 种茶。第 $i$ 位品茶师会喝掉 $\min(a_i, b_i)$ 毫升(即第 $i$ 种茶的剩余量和第 $i$ 位品茶师能喝的最大量中的较小值)。$a_i$ 也会相应减少。
然后所有品茶师向前移动一位,去品尝前一种茶。因此,在第二步中,第 $i$ 位品茶师品尝第 $(i-1)$ 种茶。第 $i$ 位品茶师会喝掉 $\min(a_{i-1}, b_i)$ 毫升。第 $1$ 位品茶师在此步结束后不再参与品尝。
在第三步中,第 $i$ 位品茶师品尝第 $(i-2)$ 种茶。第 $2$ 位品茶师在此步结束后不再参与品尝。如此类推,直到所有人都结束品尝。
以 $n=3$,$a=[10, 20, 15]$,$b=[9, 8, 6]$ 为例。左侧为每种茶当前剩余量,右侧为每位品茶师目前累计喝掉的茶量。箭头表示当前步骤中哪位品茶师喝哪种茶,箭头上的数字为喝掉的量(即该种茶的剩余量和该品茶师能喝的最大量中的较小值)。

请你输出每位品茶师最终累计喝掉的茶量。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \times 10^5$),表示茶的种类数和品茶师人数。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$),表示每种茶的初始量。
第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($1 \le b_i \le 10^9$),表示每位品茶师一次最多能喝的茶量。
所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。
输出格式
对于每个测试用例,输出 $n$ 个整数,第 $i$ 个数表示第 $i$ 位品茶师最终累计喝掉的茶量。
说明/提示
第一个测试用例已在题目描述中给出。以下是每一步后每种茶的剩余量和每位品茶师累计喝掉的茶量:
- $a = [1, 12, 9]$,$\mathit{ans} = [9, 8, 6]$
- $a = [0, 6, 9]$,$\mathit{ans} = [9, 9, 12]$
- $a = [0, 6, 9]$,$\mathit{ans} = [9, 9, 12]$
第二个测试用例中,唯一的品茶师喝掉了 $\min(5, 7)$ 毫升唯一的一种茶。
第三个测试用例每一步后每种茶的剩余量和每位品茶师累计喝掉的茶量如下:
- $a = [10, 4, 3, 3]$,$\mathit{ans} = [3, 4, 2, 1]$
- $a = [6, 2, 2, 3]$,$\mathit{ans} = [3, 8, 4, 2]$
- $a = [4, 1, 2, 3]$,$\mathit{ans} = [3, 8, 6, 3]$
- $a = [3, 1, 2, 3]$,$\mathit{ans} = [3, 8, 6, 4]$
第四个测试用例每一步后每种茶的剩余量和每位品茶师累计喝掉的茶量如下:
- $a = [999999999, 999999999, 0]$,$\mathit{ans} = [1, 1, 1000000000]$
- $a = [999999998, 0, 0]$,$\mathit{ans} = [1, 2, 1999999999]$
- $a = [0, 0, 0]$,$\mathit{ans} = [1, 2, 2999999997]$。
由 ChatGPT 4.1 翻译