#Lutece2979. 座位分配
座位分配
Migrated from Lutece 2979 座位分配
All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.
Description
大厅里有 张排成一排的桌子,相邻桌子的距离为 ,并且从左至右编号为 到 ,每张桌子有 个座位,座位等间距排列,按照逆时针依次编号为 到 ,初始每个座位上都有一个人。 有的人可能对他们的座位不满意,所以现在每个人都需要改换自己的座位(可以不动),但是每个人对于自己的新座位也有一定的要求。具体来说,第 桌第 个人的新座位对应的桌子的编号只能在区间 中,不过座位可以是这些桌中的任何一个。确定好新座位之后,大家开始换座位,代价可按如下规则计算:
过程分为两步:
从当前座位移动到目标桌编号相同的座位,从第 桌移动到第 桌编号相同的座位的代价为 ;
从当前座位移动到位于同一桌的目标座位,桌子是圆的,人们会选择最近的方向移动,从编号为 的座位移动到编号为 的座位的代价为 ;
例如,每张桌子有 个座位,verjun 想从 号桌的 号座位移动到 号桌的 号座位,则代价为 。
Input
第一行输入两个整数,代表桌子数目与每张桌子的座位数目。 接下来输入 行,每行 个整数,第 行的第 个数表示 ; 接下来输入 行,每行 个整数,第 行的第 个数表示 。
保证数据随机生成
Output
输出所有可能的移动方案中的最小代价,如果没有则输出no solution
。
Samples
2 4
0 1 1 0
1 0 1 0
0 1 1 0
1 0 1 0
10
2 4
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
no solution
Resources
2023 UESTC ICPC Training for Graph