Sanne 最近想到了一个赚钱的商业点子:在埃因霍温火车站出租高级自行车停车位。为了实现利润最大化,她将自行车停车位分成了 $N$ 个不同的等级,编号从 $0$ 到 $N-1$。$0$ 级是高级等级,位于非常靠近站台的地方。编号越高的等级,停车位条件越差(等级越高,车位越差)。$t$ 级停车位的数量为 $x_t$。
停放自行车的用户通过一个应用程序分配停车位。每个用户都有一个订阅等级,并期望获得相应等级的停车位。然而,服务条款并不保证用户一定能获得其对应等级的停车位。
如果订阅等级为 $s$ 的用户被分配到了 $t$ 级的停车位,则会发生以下三种情况之一:
- 如果 $t < s$,用户会感到高兴并给应用程序点赞(upvote)。
- 如果 $t = s$,用户会感到满意,不会有任何操作。
- 如果 $t > s$,用户会感到愤怒并给应用程序点踩(downvote)。
今天,Sanne 的应用程序共有 $y_0 + y_1 + \dots + y_{N-1}$ 名用户,其中 $y_s$ 是订阅等级为 $s$ 的用户数量。她需要你的帮助来将用户分配到停车位。每个用户应恰好获得一个停车位。一个停车位不能分配给多于一名用户,但允许某些停车位不分配给任何用户。此外,用户总数不超过可用停车位的总数。
Sanne 想要最大化她应用程序的评分。设 $U$ 为点赞数,$D$ 为点踩数。你的任务是最大化 $U - D$。
输入格式
第一行包含一个整数 $N$,表示等级或订阅等级的数量。
第二行包含 $N$ 个整数 $x_0, x_1, \dots, x_{N-1}$,表示不同等级的停车位数量。
第三行包含 $N$ 个整数 $y_0, y_1, \dots, y_{N-1}$,表示每个订阅等级的用户数量。
输出格式
输出一个整数,表示通过最优分配用户到停车位所能达到的 $U - D$ 的最大值。
数据范围
- $1 \le N \le 3 \cdot 10^5$
- $0 \le x_i, y_i \le 10^9$ 对于 $i = 0, 1, \dots, N-1$
- $y_0 + y_1 + \dots + y_{N-1} \le x_0 + x_1 + \dots + x_{N-1} \le 10^9$
子任务
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 16 | $N = 2, x_i \le 100, y_i \le 100$ |
| 2 | 9 | 对于所有 $i, j$,$x_i = x_j = y_i = y_j$。换句话说,输入中所有的 $x$ 和 $y$ 都相同。 |
| 3 | 19 | $x_i, y_i \le 1$ |
| 4 | 24 | $N, x_i, y_i \le 100$ |
| 5 | 32 | 无附加限制。 |
样例
样例输入 1
2 3 3 1 3
样例输出 1
2
样例输入 2
3 1 1 1 1 1 1
样例输出 2
1
样例输入 3
6 1 0 1 1 0 1 1 1 0 0 1 0
样例输出 3
1
样例输入 4
4 2 1 1 8 0 4 4 0
样例输出 4
-1
样例输入 5
1 1000000000 1000000000
样例输出 5
0
说明
注意,某些样例对于所有子任务来说并非有效输入。第 $i$ 个样例至少对第 $i$ 个子任务是有效的。
在第一个样例中,你可以将订阅等级为 $0$ 的用户分配到 $0$ 级车位,将两名等级为 $1$ 的用户分配到 $0$ 级车位(导致 $2$ 个点赞),并将剩余的一名等级为 $1$ 的用户分配到 $1$ 级车位。这导致评分为 $2$。
在第二个样例中,你可以将等级为 $1$ 的用户分配到 $0$ 级车位,等级为 $2$ 的用户分配到 $1$ 级车位,等级为 $0$ 的用户分配到 $2$ 级车位。这产生 $2$ 个点赞和 $1$ 个点踩,导致评分为 $1$。
在第三个样例中,你可以将等级为 $1$ 的用户分配到 $0$ 级车位,等级为 $0$ 的用户分配到 $2$ 级车位,等级为 $4$ 的用户分配到 $3$ 级车位。这同样产生 $2$ 个点赞和 $1$ 个点踩,导致评分为 $1$。
第四个样例说明如下。你可以将等级为 $1$ 的用户分配到 $0, 0, 3, 3$ 级的车位,导致 $2$ 个点赞和 $2$ 个点踩。接下来,将等级为 $2$ 的用户分配到 $1, 2, 3, 3$ 级的车位,导致 $1$ 个点赞和 $2$ 个点踩。总计 $3$ 个点赞和 $4$ 个点踩,因此评分为 $-1$。
在第五个样例中,你可以将每个人分配到与其订阅等级匹配的车位,因此评分为 $0$。