走迷宫
题号:NC54663
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

Tyl 喜欢走迷宫,他走迷宫的策略如下:

  while(1){
    if (前面没有障碍 && 前面还没有走过) 前进一步(); 
    else if(右边没有障碍 && 右边还没有走过){
      右转();
      前进一步();
    } else 原地愣住();
  }

现在他位于一个 n*m 的迷宫中(一共 n 行,每行 m 格)的第 1 行的第 1 格,幸运的是这个迷宫除了边缘的墙壁以外没有别的障碍。
他最初总是位于迷宫第一行的第一格,并且朝着右边,现在他想知道 k 秒后他的坐标(上述策略中循环 1 次就是 1 秒)。如果位于第 x 行第 y 格,坐标就是 (x,y) 。

以 3*3 的迷宫为例,Tyl 依次走过的区域如下:

  1 2 3
  8 9 4
  7 6 5

输入描述:

第一行是一个整数 T(1<=T<=100),表示数据组数。
对于每一组数据:
第一行是两个整数 n,m (1<=n,m<=50000) ,表示迷宫的尺寸。
第二行是一个整数 q(1<=q<=100000) 表示询问个数。
接下来 q 行,每行一个整数 k(0<=k<=1000000000) ,表示一次询问。

输出描述:

对于每一次询问,输出一行信息:k 秒后 Tyl 的坐标。
示例1

输入

复制
1
2 2
5
0
1
2
3
4 

输出

复制
(1,1)
(1,2)
(2,2)
(2,1)
(2,1)