#B3675. 军训

军训

军训

来源:洛谷 B3675([语言月赛202210] 军训)

题目描述

某 E 刚结束军训,军训教官将所有同学排成了 nnmm 列。

教官组织同学们进行分列式练习,同学们将按行为单位进行练习。第 ii 行第 jj 名同学摆臂的高度为 ai,ja_{i,j},踢腿的高度为 bi,jb_{i,j}

教官认为,每一行同学的不整齐度为摆臂高度方差与踢腿高度方差之和。形式化的,第 ii 行同学的不整齐度为

$$\dfrac{1}{m} \times \sum_{j=1}^{m}{\left(a_{i,j}-\dfrac{\sum_{k=1}^{m}{a_{i,k}}}{m}\right)^2} + \dfrac{1}{m} \times \sum_{j=1}^{m}{\left(b_{i,j}-\dfrac{\sum_{k=1}^{m}{b_{i,k}}}{m}\right)^2}$$

其中,j=1mai,j\sum_{j=1}^m{a_{i,j}} 代表 ai,1+ai,2+ai,3++ai,ma_{i,1}+a_{i,2}+a_{i,3}+\cdots+a_{i,m}

教官希望对若干行进行位置上的对调,使得最终排出的方阵满足:对于任意 1i<jn1 \le i < j \le n,第 ii 行的不整齐度不大于jj 行的不整齐度。

请你给出一种交换方案(可以交换任意次,也可以一次都不交换),使得最终方阵满足教官的要求。

输入格式

输入共 2n+12n+1 行。

输入的第一行为两个整数 m,nm, n,分别代表列数和行数。

接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 个代表 ai,ja_{i,j}

接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 个代表 bi,jb_{i,j}

输出格式

输出若干行。

输出的第一行为一个整数 KK,代表你交换方案中交换的次数。

接下来 KK 行,每行输出两个整数 x,yx, y,代表将第 xx 行与第 yy 行的同学进行交换。

注意:KK 应当不超过 n2n^2

样例 #1

样例输入 #1

3 3
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1

样例输出 #1

3
1 2
1 3
2 3

样例 #2

样例输入 #2

3 3
3 6 9
2 4 6
1 2 3
1 1 1
1 1 1
1 1 1

样例输出 #2

3
1 2
2 3
1 2

提示

样例 #2 解释

仅考虑摆臂高度,在前两次交换后,阵列变成如下的样子:

1: 2 4 6
2: 1 2 3
3: 3 6 9

此时,原第 33 行现被叫做第 22 行,原第 22 行现被叫做第 11 行。如果我们想要将它们交换,应该输出 1 2 而不是 2 3

数据规模与约定

对于 30%30\% 的数据,所有 ai,ja_{i,j} 均相同,bi,jb_{i,j} 均相同。

对于另外 20%20\% 的数据,满足 n100n \le 100m100m \le 100

对于 100%100\% 的数据,1n,m10001 \le n, m \le 10001ai,j,bi,j1001 \le a_{i,j}, b_{i,j} \le 100

Special Judge

本题答案不唯一,将有 Special Judge 对你的答案进行检查,所有合法答案均可以得分。