#HK5471. 「UOI 2017 Stage 4 Day1」衣柜

「UOI 2017 Stage 4 Day1」衣柜

题目描述

题目译自 Ukrainian Olympiads in Informatics 2017 Stage 4 Day1 T3. Шафа-купе

最近,瓦西亚买了一个新的推拉门衣柜。他发现衣柜里正好有 NN 个相同的隔间和 MM 扇门,这些门分两排排列。每扇门的大小都与一个隔间相符,也就是说,一扇门正好能遮住一个隔间。这让瓦西亚觉得很奇怪,于是他提出了一个更奇怪的问题:「需要多少次操作,才能让所有装有东西的隔间都被门遮住,而其他隔间都敞开着?」。在一次操作中,瓦西亚可以将任意一扇门向左或向右移动一个隔间的距离,前提是该排的目标位置是空的。如果一个隔间至少被一扇门遮住,则认为它是关闭的;否则,它是敞开的。

ihrbjgaqpt77facmquo00ojpd0.png

请编写一个程序,根据门的初始位置以及哪些隔间装有东西的信息,找出瓦西亚能让所有装有东西的隔间被遮住、而其他隔间都敞开所需的最少操作次数。

输入格式

输入文件的第一行包含一个自然数 PP (P3)(P \leq 3),表示输入数据集的数量。每个数据集由四行定义。

第一行包含两个数 NNMM (1N200(1 \leq N \leq 200, 0M2N)0 \leq M \leq 2N),分别表示隔间的数量和门的总数。

接下来的两行每行包含 NN 个数字,表示相应位置是否有门(00 - 否,11 - 是)。

该数据集的最后一行包含 NN 个数字,表示相应的隔间是否装有东西(00 - 否,11 - 是)。

输出格式

向输出文件输出 PP 个数字,表示对应每个输入数据集,瓦西亚所需的最少操作次数。如果在某个数据集中无法达到目标布局,则对该数据集输出 1-1

2
5 3
1 0 1 0 0
0 1 0 0 0
1 0 0 0 1
3 4
1 1 1
0 1 0
1 0 1

3
-1

在第一排,需要将右边的门向右移动 22 个位置,而在第二排,唯一的门需要向左移动 11 个位置。总共需要 33 次操作。

数据范围与提示

  • 对于 25%25\% 的数据,N5N \leq 5
  • 对于 15%15\% 的数据,第二排没有门。
  • 对于 25%25\% 的数据,N50N \leq 50;第二排最多有两扇门。
  • 对于 75%75\% 的数据,N50N \leq 50