AT_agc048_c [AGC048C] Penguin Skating

题目描述

有 $L$ 个格子横向排列成一行。格子从左到右依次编号为 $1,2,\ldots,L$。 有 $N$ 只企鹅站在这些格子上。企鹅从左到右依次编号为 $1,2,\ldots,N$。最初,第 $i$ 只企鹅站在第 $A_i$ 个格子上。这里,$1 \leq A_1 < A_2 < \ldots < A_N \leq L$。 你可以进行任意次数如下操作: - 选择一只企鹅,让它向左或向右滑行。企鹅会一直滑,直到前方没有空格子为止。当企鹅滑到另一只企鹅所在格子的前一个格子,或者前方已经没有格子时,企鹅会停止。 例如,当 $N=3, L=10$,企鹅所在的格子为 $(2,3,7)$ 时,如果让企鹅 2 向右滑行,企鹅 2 会移动到第 6 个格子。如果让企鹅 3 向右滑行,企鹅 3 会移动到第 10 个格子。 你的目标是让每只企鹅 $i$ 最终站在第 $B_i$ 个格子上。这里,$1 \leq B_1 < B_2 < \ldots < B_N \leq L$。请判断目标是否可以达成,如果可以,请求出所需操作次数的最小值。

输入格式

输入以如下格式从标准输入读入: > $N$ $L$ $A_1$ $A_2$ $\cdots$ $A_N$ $B_1$ $B_2$ $\cdots$ $B_N$

输出格式

如果目标无法达成,输出 $-1$;如果可以达成,输出所需操作次数的最小值。

说明/提示

## 限制条件 - $1 \leq N \leq 10^5$ - $N \leq L \leq 10^9$ - $1 \leq A_1 < A_2 < \ldots < A_N \leq L$ - $1 \leq B_1 < B_2 < \ldots < B_N \leq L$ - 输入的所有数均为整数。 ## 样例解释 1 可以按如下方式操作: - 让企鹅 1 向左滑行。企鹅的位置变为 $(1,4,6,10)$。 - 让企鹅 2 向右滑行。企鹅的位置变为 $(1,5,6,10)$。 - 让企鹅 4 向右滑行。企鹅的位置变为 $(1,5,6,11)$。 由 ChatGPT 4.1 翻译