#ATarc114d. [ARC114D] Moving Pieces on Line

[ARC114D] Moving Pieces on Line

题目描述

X=10100X = 10^{100},对于每个整数 XiX-X \leq i \leq X,有一个对应的顶点。对于每个 XiX1-X \leq i \leq X-1,存在一条连接顶点 iii+1i+1 的无向边(下文称为边 {i,i+1}\{i, i+1\})的图。

该图的所有边初始时都被涂成红色。现在有 NN 个棋子,第 ii 个棋子被放置在顶点 aia_i 上。

maroon 君可以进行如下操作:

  • 选择一个棋子。若该棋子当前在顶点 ii,则可以将其移动到顶点 i1i-1i+1i+1,并将经过的那条边的颜色反转(如果当前为红色则变为蓝色,蓝色则变为红色)。

在操作过程中,允许多个棋子位于同一个顶点。

maroon 君希望通过若干次上述操作(可以为零次),使得边的颜色组合达到目标状态。目标状态由一个偶数 KKKK 个整数 t1<t2<<tKt_1 < t_2 < \cdots < t_K 给出,具体要求如下:

  • 对于 i<t1i < t_1 的所有 ii,边 {i,i+1}\{i, i+1\} 为红色;
  • 对于 t1i<t2t_1 \leq i < t_2 的所有 ii,边 {i,i+1}\{i, i+1\} 为蓝色;
  • 对于 t2i<t3t_2 \leq i < t_3 的所有 ii,边 {i,i+1}\{i, i+1\} 为红色;
  • 以此类推,对于每个奇数 j=1,3,,K1j = 1, 3, \cdots, K-1tji<tj+1t_j \leq i < t_{j+1} 的边为蓝色,其余边为红色。

请你求出 maroon 君将边的颜色组合变为目标状态所需的最小操作次数。如果无法实现目标状态,则输出 1-1

输入格式

输入通过标准输入给出,格式如下:

NN KK a1a_1 a2a_2 \cdots aNa_N t1t_1 t2t_2 \cdots tKt_K

输出格式

请输出 maroon 君将边的颜色组合变为目标状态所需的最小操作次数。如果无法实现目标状态,则输出 1-1

样例 1

输入

2 2
2 -1
-2 2

输出

4

样例 2

输入

2 2
2 2
5 8

输出

9

样例 3

输入

3 4
1 3 5
0 2 4 6

输出

-1

样例 4

输入

4 4
3 4 5 6
3 4 5 6

输出

2

说明/提示

限制条件

  • 1N50001 \leq N \leq 5000
  • 2K50002 \leq K \leq 5000
  • KK 是偶数
  • ai109|a_i| \leq 10^9
  • ti109|t_i| \leq 10^9
  • ti<ti+1t_i < t_{i+1}
  • 输入均为整数

样例解释 1

例如,可以通过 44 次操作达到目标状态,需要改变 44 条边的颜色,这是最优解。初始状态如下(为方便起见,省略了 3-3 左侧和 33 右侧的边):
0
1-1 处的棋子移动到 2-2,状态变为:
1
22 处的棋子移动到 11,状态变为:
2
11 处的棋子移动到 00,状态变为:
3
00 处的棋子移动到 1-1,状态变为目标状态:
last

样例解释 2

初始时也可能有多个棋子在同一个顶点。

由 ChatGPT 4.1 翻译