每个输入数据包含一个测试点。第一行为一个正整数N,方阵的大小。0 接下来N行,每行有N个数字,第i行第j个数字表示方阵i行j列上的数字是多少,对于每个数字,保证是非负整数且范围在[0, 65535]内。
输出N行,每行两个整数n,m,第i行的n,m表示第i次斩击时,斩击第n行和第m列的数字和是最大的。注意如果此时有多种方案,输出n最小的(更小的数字更方便小明记忆),如果还有多种方案,输出m最小的。而且n、m的坐标是对于当前的(N + 1 – i)大小方阵而言,并不是对于一开始N*N大小的方阵而言,更加详细的说明参见下方样例说明。
3 1 0 0 0 10 10 0 10 10
2 2 1 2 1 1
对于第一轮,我们斩击2行2列、2行3列、3行2列、3行3列的数字和都是最大的为30(行列重复的那个格子的数字并不会被计算两次),但因为希望n和m都最小,所以我们的斩击选择为2 2
斩击之后剩余的上下左右四个矩阵收缩为新的矩阵
1 0
0 10
此时最优的斩击选择就是1 2 (注意是新方阵下的坐标,而非原方阵的第1行3列)
然后剩下一个1*1的方阵,只有唯一的斩击选择1 1了