Problem

4 /11


النقاط على خط

Problem

تحب بيتيا الصغيرة النقاط. في الآونة الأخيرة ، أعطته والدته ن من النقاط التي تقع على خط OX. تساءل بيتيا عن عدد الطرق التي يمكنه من خلالها اختيار ثلاث نقاط مختلفة بحيث لا تتجاوز المسافة بين أبعد نقطتين من النقاط المحددة د.
لاحظ أن ترتيب النقاط ضمن الثلاثي المحدد لا يهم.

إدخال
يحتوي السطر الأول على عددين صحيحين: n و d (1 & thinsp؛ & le؛ & thinsp؛ n & thinsp؛ & le؛ & thinsp؛ 10 5 ؛ 1 & thinsp؛ & le؛ & thinsp؛ d & thinsp؛ & le؛ & thinsp؛ 10 < sup> 9 ). السطر التالي يحتوي على n أعداد صحيحة x1، & thinsp؛ x2، & thinsp؛ ...، & thinsp؛ xn، modulo لا يتجاوز 10 9 & mdash؛ إحداثيات س للنقاط المعطاة لبيتيا.
نضمن أن إحداثيات النقاط في الإدخال تتزايد بشكل صارم.

الإخراج
طباعة عدد صحيح واحد و [مدش] ؛ عدد ثلاث مرات من النقاط حيث لا تتجاوز المسافة بين أبعد نقطتين د.
الرجاء عدم استخدام المحدد٪ lld لقراءة أو كتابة أرقام 64 بت في C ++. يوصى باستخدام دفق cin أو cout أو المحدد٪ I64d.
نبسب ؛ <الجسم>
إدخال الإخراج
4 3
1 2 3 4
4
4 2
-3 -2 -1 0
2
5 19
1 10 20 30 50
1
نبسب ؛
في المثال الأول ، أي ثلاث نقاط مختلفة مناسبة لنا.
في المثال الثاني ، لا يصلح لنا سوى 2 ثلاثة أضعاف: {-3 ، -2 ، -1} و {-2 ، -1 ، 0}.
في المثال الثالث ، واحد يناسبنا: {1، 10، 20}.
& nbsp؛