题库练习 Last Man Standing
← 上一题 下一题 →

A16192 | Last Man Standing

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

There are $n$ heroes in a videogame. Each hero has some health value $h$ and initial armor value $a$ . Let the current value of armor be $a_{\mathit{cur}}$ , initially equal to $a$ .

When $x$ points of damage are inflicted on a hero, the following happens: if $x < a_{\mathit{cur}}$ , then $x$ gets subtracted from $a_{\mathit{cur}}$ ; otherwise, $1$ gets subtracted from $h$ and $a_{\mathit{cur}}$ gets assigned back to $a$ .

In the start of the game, you choose the value $x$ (an integer strictly greater than $0$ , arbitrarily large). Then you keep attacking all heroes in rounds: in one round, you inflict $x$ points of damage to all alive heroes. A hero dies when his health becomes $0$ . The game ends when all heroes are dead.

The last hero to die earns the number of points, equal to the number of rounds he was the only hero alive. The other heroes get $0$ points. In particular, if the last round ends with multiple heroes dying, then every hero gets $0$ points.

The game is played for every possible $x$ (from $1$ to infinity). The points are reset between the games. What's the maximum number of points each hero has had?

输入格式

The first line contains a single integer $t$ ( $1 \le t \le 10$ ) — the number of testcases.

The first line of each testcase contains a single integer $n$ ( $1 \le n \le 2 \cdot 10^5$ ) — the number of heroes.

The second line contains $n$ integers $h_1, h_2, \dots, h_n$ ( $1 \le h_i \le 2 \cdot 10^5$ ) — the health value of each hero.

The third line contains $n$ integers $a_1, a_2, \dots, a_n$ ( $1 \le a_i \le 2 \cdot 10^5$ ) — the initial armor value of each hero.

输出格式

For each testcase, print $n$ integers — the maximum number of points each hero has had over the games played for every possible $x$ .

输入输出样例

输入 #1
3
3
3 1 2
3 11 5
1
100
200
4
5 9 5 1
9 2 9 10
输出 #1
1 1 1 
20000 
0 4 0 0
C++ 编辑器
输入
输出