T95223 [DBOI2019]分块
题目背景
```cpp
众所周知,分块世界第一可(ku)爱(ai)。
——1jia1
```
你正在写分块,这时家长进来了,于是您装作在打galgame。

题目描述
分块是一种数据结构,它是把长度为$n$的序列分成$\sqrt n$块(向上取整),每块大小(即内含元素个数)为$\sqrt n$(向下取整)。容易得知,对于不为完全平方数的$n$,最后一个块的大小并不是$\sqrt n$。
分块娘现在有一个$n*n$的矩形,里面有$n*n$个数字。她已经看够了“$\sqrt{}$”,于是想换个花样,把矩形均分成$\frac {1} {2}n*\frac {1} {2}n$的$4$块。分完后,她又把$4$小块每块再均分成$4$块,于是有了$16$个小小块。
这时,splay娘和two-pointers娘走了过来。看到分块娘正在做$log$的事情,splay娘嘲笑她太慢了。分块娘很生气,于是应下了splay娘的根号挑战:
分块娘每次把所有矩形分一次前(第一次分则分$n*n$的大矩形),需要分别计算出每个矩形的莫队值和kdtree值,然后把这些答案告诉splay娘和two-pointers娘。
一个矩形的莫队值定义为:$\sum_{i=0}^{∞} cnt[i]^2$,其中$cnt[i]$表示数字i在该矩形内的出现次数。
一个矩形的kdtree值定义为:$\min \left | a[i][j]-a[k][l] \right | $,其中$a[i][j]$,$a[k][l]$均为矩形内的数,且$a[i][j]\neq a[k][l]$。如果无法找到满足条件的$i$和$j$,则为矩形中最小的数。
输入格式
第一行,输入一个正整数$n$($n=2^{2k}$,$k\in \mathbb{N}^+$),表示矩形大小为$n*n$。
接下来$n$行,每行输入$n$个非负整数(不超过$10^9$),这$n*n$个数描述了这个$n*n$的矩形内部的所有数。
输出格式
输出$1+\log_2 n$行,每行输出$2$个数,分别表示第$i-1$次分矩形前,所有矩形的莫队值之和,kdtree值之和。
说明/提示
【样例#$1$说明】
所有矩形的莫队值为:
```
38
8 4
6 4
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
```
所有矩形的kdtree值为:
```
1
8 1
2 1
1 9 2 6
1 9 8 9
0 8 1 7
0 6 0 4
```
Subtask#$1$($30$分):
$1\leq n\leq 32$。
Subtask#$2$($30$分):
$1\leq n\leq 256$。
Subtask#$3$($40$分):
$1\leq n\leq 512$。
所有测试点的时间限制统一为$\text{1s}$,内存限制统一为$\text{125M}$。
### 题目提供者:$1jia1$