loj#P6790. 「ICPC World Finals 2020」扑克牌学

「ICPC World Finals 2020」扑克牌学

题目描述

伟大的魔术大师 Cardoni 有一副标有 112121 的扑克牌。他会用这副扑克牌表演如下的魔术:

Cardoni 会先将这些扑克牌正面朝上,按从 112121 的顺序一行一行地把这些扑克牌放在一个 33 列的网格中。然后让一位观众选择 112121 之间的一个整数(包括两端),并只让观众自己知道。观众会指出这三列中哪一列包含着他选中的扑克牌。然后魔术师会按列取走扑克牌,并第二个取走指定列的扑克牌(取走其他两列扑克牌的顺序并不重要)。取走每列的扑克牌时,扑克牌需正面向上,从每列第一张牌开始取,之后取走的扑克牌立即放在之前取走的最后一张扑克牌下面。这些牌再按牌堆中从上到下的顺序,按行从上到下摆成三列。这个过程再重复两遍;每一次,观众指定的列都是魔术师取扑克牌的第二列。在这样重复三次之后,Cardoni 会说:「我已经完全参透你在想什么了,你选择的牌就在现在牌阵的中心。」并且这是真的——所选择的牌整好位于牌阵的中心(第 44 行第 22 列)。此外,无论之后再进行多少次指出牌所在列之后重新摆牌的操作,所选择的牌仍会位于固定的位置。

这个操作只要保证包含秘密数字的列是第二个取走的列,并重新摆牌,那么无论选择什么数字最后一定会成功。

Cardoni 想知道他是否能将这个魔术用在不同数量的扑克牌,行数和列数上,并实验在观众指定列之后,在第几次取牌时取走指定列才能达到效果。然而,这不是一个简单的问题。例如,当用 2424 张牌,排成 8833 列,并在重新摆牌前第二个拿走指定列的牌时,编号为 55 的牌会最终固定位于第 44 行第 33 列,编号为 2020 的牌会最终固定位于第 55 行第 11 列。这两个位置也都不是牌阵的两个中心位置(第 44 或第 55 行第 22 列)。此外,Cardoni 也不确定在选择的牌达到一个固定位置前,「指定列并重新摆牌」的操作要多少轮。

给出牌阵的行数和列数,请帮 Cardoni 编排他的魔术,使得只有一个离中心尽可能近的固定位置。

输入格式

输入包含一行两个整数 r,c (2r,c106)r,c\ (2\le r,c\le 10^6),分别表示在表演时牌阵的行数和列数。扑克牌编号为 11rcr\cdot c,初始时按递增顺序一行一行排列。

输出格式

输出一行四个数 p,i,j,sp,i,j,s,意义如下:

  • 观众指定的列应该在第 pp 次取列时选取;
  • 利用这个 pp 的取值,会让观众选择的任意牌最终都到达第 ii 行第 jj 列这一固定位置;
  • ss 是让观众选择的任意牌到达这个固定位置所要操作的最多轮数。

选择的 pp 值要使得最终的固定位置 (i,j)(i,j) 离任意牌阵中心(一个,两个或四个)尽可能近。(i,j)(i,j)(i,j)(i',j') 之间的距离为 ii+jj|i-i'|+|j-j'|。如果多于一个 pp 的取值可以取得相同的距离,选择最小的 pp

7 3

2 4 2 3

8 3

1 1 1 3