三角形
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小羊刚刚在学校学了几何图形,他刚刚知道三角形是什么意思。
为了巩固在学校里学到的知识,他的父母给他拿来了三堆小棒让他自己来搭三角形。每一堆中,各个小棒的长度都是一样的;三堆中,小棒的长度分别为 a,b,c\ (a\lt b\lt c),每堆小棒至少有 3 根。
小羊很好奇用这些小棒可以拼出多少个形状不同的三角形,你能告诉他吗?
小羊用小棒拼三角形的方式是让每根用到的小棒作为三角形的一条边只要拼成的三角形是全等的(三边分别相等的三角形是全等的)我们就认为拼成的两个三角形形状相同;否则三角形形状不同
因为每天小羊的父母都会给他带来不同的三堆小棒,所以你需要在接下来的 T 天内,每天回答小羊的问题

输入描述:

第一行输入一个整数 T\ (1\leq T \leq 10^3) ,表示总共要处理 T 天的答案。
接下来的第 2\sim T+1 行,每行输入三个整数 a,b,c\ (1\leq a\lt b\lt c\leq100) ,表示那一天的三堆小棒分别的长度。

输出描述:

对于每一组样例,输出一行,在该行输出一个整数,表示那一天的三堆小棒可以组成的不同三角形的个数.
示例1

输入

复制
3
2 3 4
4 5 6
1 3 7

输出

复制
9
10
6

说明

对于第一组样例,能组成的不同的三角形包括 (2,2,2),(2,2,3),(2,3,3),(2,3,4),(2,4,4),(3,3,3),(3,3,4),(3,4,4),(4,4,4) ,共计 9 种。