#794. 数三角形(triangle)

数三角形(triangle)

题目描述

现在有 nn 种木棍,第 ii 种木棍的长度为 aia_i,共有 bib_i 根。 从这些木棍中取出三根(可以来自同一长度的多根)组成三角形,请问存在多少种 本质不同 的非退化三角形。

  • 非退化三角形:三条边长度满足任意两边之和大于第三边。
  • 本质不同:若两三角形不是全等(即边长的多重集合不同),则认为本质不同。也就是说,我们把三条边排序为 xyzx\le y\le z,不同的 (x,y,z)(x,y,z) 计为不同三角形。

注意:取三根木棍时必须满足每种长度使用的根数不超过该长度的库存 bib_i

输入格式

输入包含多组测试数据。

第一行包含一个整数 tt,表示测试数据组数。接下来的每组数据格式如下:

  • 第一行输入一个整数 nn,表示木棍的种类数。
  • 接下来 nn 行,每行包含两个整数 ai bia_i\ b_i,表示第 ii 种木棍长度为 aia_i,有 bib_i 根。

输入保证所有 aia_i 互不相同。

输出格式

对于每组测试数据,输出一行,包含一个整数,表示可以得到的本质不同的非退化三角形的最大数量。

样例输入 1

2
3
2 2
3 1
4 1
2
2 3
3 3

样例输出 1

2
4

样例 2

见选手目录下的 triangle/triangle2.intriangle/triangle2.ans。 该测试用例满足测试点 131\sim 3 的约束条件。

样例 3

见选手目录下的 triangle/triangle3.intriangle/triangle3.ans。 该测试用例满足测试点 44 的约束条件。

样例 4

见选手目录下的 triangle/triangle4.intriangle/triangle4.ans。 该测试用例满足测试点 55 的约束条件。

样例 5

见选手目录下的 triangle/triangle5.intriangle/triangle5.ans。 该测试用例满足测试点 676\sim 7 的约束条件。

样例 6

见选手目录下的 triangle/triangle6.intriangle/triangle6.ans。 该测试用例满足测试点 8108\sim 10 的约束条件。

说明

样例解释

  • 11 组数据:可以组成的本质不同三角形为 (2,2,3)(2,2,3)(2,3,4)(2,3,4),共 22 种。
  • 22 组数据:长度 22 有 3 根,长度 33 有 3 根,可以得到的不同三角形为 (2,2,2),(2,2,3),(2,3,3),(3,3,3)(2,2,2),(2,2,3),(2,3,3),(3,3,3),共 44 种。

数据范围

对于 100%100\% 的数据,满足:

  • 1t51\le t\le 5
  • 1n50001\le n\le 5000
  • 1ai,bi1091\le a_i,b_i\le 10^9,且所有 aia_i 互不相同。

各测试点的附加限制如下表所示:

测试点编号 nn\le 特殊性质
131\sim3 100100
44 20002000 A(所有 bi=1b_i=1
55 B(所有 bi=2b_i=2
676\sim7
8108\sim10 50005000
  • 特殊性质 A:所有 bib_i 均为 11
  • 特殊性质 B:所有 bib_i 均为 22

大样例

点击下载