#B1503. 有向方格移动路径

有向方格移动路径

【题目描述】

有一个由 nn 行、mm 列组成的网格。每个格子中都记录了一个下一步要前往 的格子坐标。

当华小科位于坐标 (x,y)(x,y) 时,他会按照 (x,y)(x,y) 格子中的记录移动到下一个 坐标。记录 (0,0)(0,0) 表示旅行结束。

现在华小科从 (Sx,Sy)(S_x,S_y) 出发。请按照访问顺序输出他经过的所有有效格子 坐标,不要输出表示结束的 (0,0)(0,0)。

【输入描述】

第一行输入四个整数 m,n,Sx,Sym,n,S_x,S_y,分别表示网格的列数、行数和起点的 横、纵坐标。

接下来输入 nn 行,每行包含 2m2m 个整数。第 yy 行中的第 xx 对整数表示 坐标 (x,y)(x,y) 格子中记录的下一步坐标 (nx,ny)(n_x,n_y)。

保证:

  • 1≤n,m≤10001\le n,m\le1000;
  • 1≤Sx≤m1\le S_x\le m,1≤Sy≤n1\le S_y\le n;
  • 每条记录的下一步坐标为某个网格内坐标,或为 (0,0)(0,0);
  • 从起点出发一定会在有限步内到达 (0,0)(0,0)。

【输出描述】

从第一行开始,按访问顺序输出每个有效格子的坐标,每行输出两个整数。

【样例 1】

【样例 1 输入】

3 3 1 1
1 2 1 3 2 1
2 2 0 0 2 3
3 2 3 3 1 1

【样例 1 输出】

1 1
1 2
1 3
2 1
2 2

【样例 1 解释】

从 (1,1)(1,1) 出发,格子中的记录依次把华小科带到 (1,2)(1,2)、(1,3)(1,3)、(2,1)(2,1) 和 (2,2)(2,2)。(2,2)(2,2) 中的记录为 (0,0)(0,0), 因此旅行结束,输出以上五个有效格子坐标。

【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 4 40 n,m≤10n,m\le10
5 ~ 7 30 n,m≤100n,m\le100
8 ~ 10 n,m≤1000n,m\le1000