题号:NC221050
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld
题目描述
在经过一番学习以后,Ssyze 总算对几何略知一二,所以他想考考你。
在极坐标系下,对于一个以极点为圆心,周长为 l的圆
%20%3D%20%5Cfrac%7Bl%7D%7B2%5Cpi%7D)
,我们可以沿着它的圆周建立一条数轴,使在圆上的每个点
%20%3D%20%5Cleft(%5Cfrac%7Bl%7D%7B2%5Cpi%7D%3B%20%5Cfrac%7B2%5Cpi%20x%7D%7Bl%7D%5Cright))
都可以用一个实数 x (

)唯一表示。
现在, Ssyze 在圆上选出了 n 个不同的点,其中第 i 个点的坐标为

。他想知道,从这 n 个点中任选三个点作为顶点所构成所有三角形中,有多少个包含圆心(在内部或者在边上)?
两个三角形不同,当且仅当他们至少有一个不同的顶点。
输入描述:
第一行有两个整数
,
,分别表示圆上点的个数和圆的周长。
第二行有
个不同的整数
,分别表示 n 个点沿着周长的坐标。
输出描述:
输出一个整数,表示满足要求的三角形的个数。
示例2
输入
复制
8 100
92 1 12 34 45 51 84 88
备注:
第一个样例如图所示(圆的周长为 100 ):
满足要求的三角形分别为:

。