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

「ICPC World Finals 2020」扑克牌学

题目描述

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

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

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

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

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

输入格式

输入包含一行两个整数 r,c (2≤r,c≤106)r,c\ (2\le r,c\le 10^6),分别表示在表演时牌阵的行数和列数。扑克牌编号为 11 到 r⋅cr\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') 之间的距离为 ∣i−i′∣+∣j−j′∣|i-i'|+|j-j'|。如果多于一个 pp 的取值可以取得相同的距离,选择最小的 pp。

7 3

2 4 2 3

8 3

1 1 1 3