题目描述
小X很喜欢三角形,原因之一是三角形具有稳定性。也就是说,给定三角形的三条边长,它的形状也随之确定了。
现在小X想画一个三条边长都是正整数的三角形,其中两条边的长度分别是a和b,第三条边的长度还没有确定。小X想知道他能画出多少种不同的三角形。
输入
输入数据仅有一行包含两个用空格隔开的正整数,表示a和b。
输出
输出仅一行包含一个正整数,表示其中两条边长分别为a,b的三角形的种类数。
样例输入
2 3
样例输出
3
解释:第三条边的长度可能为2,3,4,共3种。
普通方法:
用循环枚举成立的数(a+b>c,a+c>b,b+c>a)然后累计,最后输出。
(在此省略超时代码)
对不起,时间超限!!!
数学优化:
我们发现,不管数据如何坑,都会满足答案是一个严格递增的序列,所以我们可以枚举左右端点然后相减再加一输出答案。
方法:
左端点为|a-b|+1
右端点为a+b-1<