Module: iki işaretçi


Problem

4 /11


Bir çizgideki noktalar

Problem

Küçük Petya noktaları sever. Geçenlerde annesi ona OX hattında bulunan n puan verdi. Petya, seçilen en uzak iki nokta arasındaki mesafe d'yi geçmeyecek şekilde üç farklı noktayı kaç şekilde seçebileceğini merak etti.
Seçilen üçlü içindeki puanların sırasının önemli olmadığını unutmayın.

Giriş
İlk satır iki tam sayı içerir: n ve d (1 ≤ n ≤ 105; 1 ≤ d ≤ 10< destek>9). Sonraki satır n tamsayı x1, x2, ..., xn içerir, modulo 10'u aşmaz9 — Petya'ya verilen noktaların x koordinatları.
Girişteki noktaların koordinatlarının kesinlikle arttığı garanti edilir.

Çıktı
Tek bir tamsayı yazdır — en uzak iki nokta arasındaki mesafenin d'yi geçmediği noktaların üçlü sayısı.
Lütfen C++'da 64 bitlik sayıları okumak veya yazmak için %lld belirleyicisini kullanmayın. cin, cout akışları veya %I64d belirticisinin kullanılması önerilir.
 
 
Birinci örnekte herhangi üç farklı nokta bizim için uygun.
İkinci örnekte bizim için sadece 2 üçlü uygundur: {-3, -2, -1} ve {-2, -1, 0}.
Üçüncü örnekte, bize bir üçlü uyuyor: {1, 10, 20}.
 
Giriş Çıktı
4 3
1 2 3 4
4
4 2
-3 -2 -1 0
2
5 19
1 10 20 30 50
1