#agc048c. [agc048_c]Penguin Skating
[agc048_c]Penguin Skating
题目描述
有 个方块在一行上排列,编号从左到右为 。
这些方块上有 只企鹅,编号从左到右为 。初始时,企鹅 在方块 上。其中,满足 。
你可以进行以下操作任意次数:
- 选择一只企鹅并向左或向右滑动。只要前方有一个空方块,企鹅就会一直滑动。当它滑动到一个已被另一只企鹅占据的方块之前,或者前方没有方块时,它会停下来。
例如,假设 ,,企鹅分别位于方块 。在这种情况下,如果我们将企鹅 向右滑动,它会滑动到方块 ;如果我们将企鹅 向右滑动,它会滑动到方块 。
你的目标是使每只企鹅都位于方块 上,其中满足 。判断是否可以实现目标。如果可以实现,找出所需的最少操作次数。
约束条件
- 输入中的所有数字都是整数。
输入
输入以以下格式从标准输入给出:
输出
如果无法实现目标,则输出 ;如果可以实现,则输出所需的最少操作次数。
示例输入 1
4 11
3 4 6 10
1 5 6 11
示例输出 1
3
以下操作序列可以实现目标:
- 将企鹅 向左滑动。此时企鹅位于方块 。
- 将企鹅 向右滑动。此时企鹅位于方块 。
- 将企鹅 向右滑动。此时企鹅位于方块 。
示例输入 2
1 3
1
2
示例输出 2
-1
示例输入 3
10 1000000000
65110170 68805223 123016442 275946481 661490312 760727752 764540566 929355340 930658577 947099792
1 2 123016442 661490311 929355337 930658574 999999997 999999998 999999999 1000000000
示例输出 3
13