测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A8840. Points on Line

编程题 普及/提高-

题目描述

Little Petya likes points a lot. Recently his mom has presented him $n$ points lying on the line $OX$ . Now Petya is wondering in how many ways he can choose three distinct points so that the distance between the two farthest of them doesn't exceed $d$ .

Note that the order of the points inside the group of three chosen points doesn't matter.

输入格式

The first line contains two integers: $n$ and $d$ ( $1<=n<=10^{5}; 1<=d<=10^{9}$ ). The next line contains $n$ integers $x_{1},x_{2},...,x_{n}$ , their absolute value doesn't exceed $10^{9}$ — the $x$ -coordinates of the points that Petya has got.

It is guaranteed that the coordinates of the points in the input strictly increase.

输出格式

Print a single integer — the number of groups of three points, where the distance between two farthest points doesn't exceed $d$ .

Please do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.

输入输出样例

输入 #1
4 3
1 2 3 4
输出 #1
4
输入 #2
4 2
-3 -2 -1 0
输出 #2
2
输入 #3
5 19
1 10 20 30 50
输出 #3
1

说明/提示

In the first sample any group of three points meets our conditions.

In the seconds sample only 2 groups of three points meet our conditions: {-3, -2, -1} and {-2, -1, 0}.

In the third sample only one group does: {1, 10, 20}.
上一题 去做题 下一题