木桩
题号:NC233694
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

你有一些木桩,木桩分为大木桩和小木桩,大木桩共  个,小木桩共  个。

你还有一条直线,直线上有有  个位置,分别编号为 

现在你需要把这  个木桩一一对应地打到每一个位置上。换句话说,每个位置有且仅有一个木桩。

对于一种打木桩的方案,它的美观值由如下方式计算:

  • 对于任意两个打在位置  的大木桩,它们会使美观值增加  ,其中  为位置编号在  中小木桩的数量。

  • 对于任意一个打在位置  的大木桩,它们会使美观值减少  ,其中  为位置编号在  中小木桩的数量。

请你求出所有打木桩方案中美观值最大的那一种,并输出这个最大值。

输入描述:

本题中的每个测试点包含多个测试数据。

第一行一个整数  表示测试数据组数。

每组数据输入一行两个整数  。

输出描述:

对于每组数据,输出一行一个整数表示答案。
示例1

输入

复制
2
4 1
2 2

输出

复制
2
0

说明

设  表示小木桩, 表示大木桩。

对于第一组数据,一种最优打法为  。

对于第二组数据,一种最优打法为  。