Module: dua petunjuk


Problem

4 /11


Titik pada garisan

Problem

Petya kecil suka titik. Baru-baru ini, ibunya memberinya n mata yang terletak pada baris OX. Petya tertanya-tanya berapa banyak cara dia boleh memilih tiga titik berbeza supaya jarak antara dua titik paling jauh yang dipilih tidak melebihi d.
Perhatikan bahawa susunan mata dalam trio yang dipilih tidak penting.

Input
Baris pertama mengandungi dua integer: n dan d (1 ≤ n ≤ 105; 1 ≤ d ≤ 10< sup>9). Baris seterusnya mengandungi n integer x1, x2, ..., xn, modulo tidak melebihi 109 — koordinat-x bagi mata yang diberikan kepada Petya.
Dijamin bahawa koordinat titik dalam input meningkat dengan ketat.

Output
Cetak satu integer — bilangan tiga kali ganda titik di mana jarak antara dua titik paling jauh tidak melebihi d.
Sila jangan gunakan penentu %lld untuk membaca atau menulis nombor 64-bit dalam C++. Adalah disyorkan untuk menggunakan cin, cout streams atau penentu %I64d.
 
 
Dalam contoh pertama, mana-mana tiga titik berbeza sesuai untuk kita.
Dalam contoh kedua, hanya 2 tiga kali ganda sesuai untuk kita: {-3, -2, -1} dan {-2, -1, 0}.
Dalam contoh ketiga, satu triple sesuai dengan kita: {1, 10, 20}.
 
Input Output
4 3
1 2 3 4
4
4 2
-3 -2 -1 0
2
5 19
1 10 20 30 50
1