骑士的旅行

骑士的旅行

测试数据来自 system/1791

描述

“骑士的旅行”是最近流行的一种棋盘游戏。N*N的棋盘上,我们于时刻0在第X行、第Y列的格子上放置一个骑士。每个时刻将骑士按照规则进行一步移动,即某个坐标改变2个单位,同时另一个坐标改变1个单位。游戏规则中,棋盘的每个格子并不总是可以使用的,具体来说,每个格子都被赋予一个正整数,只有当前的时刻是此正整数的倍数时,这个格子才能使用。当然,游戏过程中的每个时刻,骑士必须处在一个可以使用的格子上。游戏者需要仔细的设计骑士的移动方案才能让游戏进行下去。

给你一个游戏的初始局面,即棋盘的大小,时刻0骑士的位置,以及每个格子被赋予的正整数,请你计算能否对骑士进行T次操作(即游戏能否进行到时刻T)。如果能,请找出时刻T骑士可能出现的所有位置。

格式

输入格式

第1行,包括两个正整数N,T,分别表示棋盘的大小,和操作次数。

第2行,包括两个正整数X, Y,表示时刻0骑士所处的位置。

第3~N+2行,每行N个不超过10^9的正整数。第i+2行的第j个整数表示棋盘上第i行、第j列的格子被赋予的整数。

输出格式

第一行,包含一个非负整数M,表示T次操作后骑士可能出现的位置总数。

接下来M行,每行包括两个正整数,表示一个骑士可能出现的位置。将这些位置按照行编号递增(行编号相同时按列编号递增)的顺序输出。

样例1

样例输入1

3 2
1 1
1 3 2
2 3 2
3 1 1

样例输出1

2
1 1
1 3

限制

1s

提示

对于30%的数据,有1 ≤ T ≤ 50,000;
对于100%的数据,有3 ≤ N ≤ 30,1 ≤ T ≤ 1,000,000,1 ≤ X, Y ≤ N。

来源

COCI 2011/2012

信息

ID
1833
难度
(无)
分类
其他 | 数学 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者