在CCNU寻求ACM是否搞错了什么?
题号:NC231611
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

听说在皮尔特沃夫的塔里斯议员研究出了稳定的海克斯水晶,在 CCNU 魔法学院学习 ACM 魔法的 HJ 想要学习这种技术,于是,HJ去祖安进购了一批魔法水晶。

有趣的是,这一批水晶的数量有 个,并且第 i 个水晶的能量恰好为 i,为了妥善保存,HJ 把这些水晶依次放在了一个 nm 列的格子里。

在研究的过程中,她发现了一件很神奇的事情,如果把某一个水晶打碎,它会释放与它相邻[1]未被打碎水晶的能量之和的能量(不包括自己本身)。

于是HJ想知道怎样把这 个魔法水晶重新摆放,使得按照最优策略打碎所有水晶得到的总能量值最大,HJ完全无法解答这个问题,她只能求助于你。

签订了契约成为魔法少女的你,一直想要结束这个圆环之理和焰魔共存的不稳定平衡下的世界,你需要强大的能量,因此请你帮HJ构造出一种对水晶的摆放方案[2]使得按照最优策略打碎所有水晶产生的总能量在所有摆放方案中是最大的,最后只用告诉她这个总能量是多少。

可以参考样例解释食用题面。

[1] 相邻: 指上下左右相邻,具体来说,对于两个坐标为[x, y], [i, j]的格子,两个格子相邻指的是

[2] 摆放方案:指对于一个从1到 $n*m$ 的排列 ,把每个格子依次放上第p_i个水晶。

输入描述:

第一行一个整数 T,表示有 T 组数据

接下来每行输入包含两个整数 nm,分别表示行和列的大小





**注意**:由于本题读入输出数据量较大,请使用较快的读入方式,例如scanf,printf。

输出描述:

输出包含 T 行,每一行为该组数据对应的答案。
示例1

输入

复制
2
2 2
2 3

输出

复制
14
36

说明