OpenJudge

8:三连击的数量

总时间限制:
1000ms
内存限制:
65536kB
描述

N个数的数组:a[1],a[2],...,a[N]。

从数组中任意取出三个数{a[i],a[j],a[k]},如果满足 |a[i]-a[j]|=|a[j]-a[k]|,则被称为一组三连击。

例如{15,10,5}满足|15-10|=|10-5|,是一组三连击。

*顺序不同算不同的三连击。

输入
第1行包含一个整数N(N <= 2000)
第2行包含N个的非负整数(0 < a[i] <= 10000),空格隔开
输出
一个整数,代表数组中能够找出的三连击数量。
样例输入
#1:
4
2 2 4 3

#2:
3
5 7 9

#3:
5
5 5 5 5 5
样例输出
#1:
8

#2:
2

#3:
60
提示
* 对于40%的数据,N<=200
* 对于100%的数据,N<=2000

* 样例1中,4组三连击为{2,4,2},{2,4,2},{2,3,2},{2,3,2},{2,3,4},{2,3,4},{4,3,2},{4,3,2}
* 样例2中,2组三连击为{5,7,9},{9,7,5}
* 样例3中,由于数组元素都相等,任意取三个都是三连击,共5×4×3=60组

** 尝试使用Hash技术
全局题号
15381
添加于
2017-07-04
提交次数
74
尝试人数
41
通过人数
41