#THU20151B. 整数对

    ID: 109 Type: Default 1000ms 512MiB Tried: 4 Accepted: 2 Difficulty: 1 Uploaded By: Tags>清华推研机试考研其他二分查找双指针扫描

整数对

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

已知 nn 个非负数整数 A1,A2,,AnA_1, A_2, \cdots, A_n,以及一个非负数整数 MM。请你输出满足以下条件的 (i,j)(i,j) 的数对个数:

  1. i<ji \lt j
  2. Ai+AjMA_i+A_j \le M

由于满足条件的整数对可能很多,你只需要输出满足条件的整数对的个数除以 109+710^9 + 7 的余数。

输入格式

从标准输入读入数据。

输入的第一行包含整数 nnMM,以一个空格隔开。

输入的第二行包含 nn 个以一个空格分隔开的整数,表示 A1,A2,,AnA_1 , A_2 , \cdots, A_n

输出格式

输出到标准输出。

输出一个整数,即满足条件的整数对的个除以 109+710^9 + 7 的余数。

5 6
1 2 3 4 5
6

样例 1 解释

(1,2),(1,3),(1,4),(1,5),(2,3),(2,4)(1,2),(1,3),(1,4),(1,5),(2,3),(2,4) 是所有满足条件的(i,j)(i,j) 组合。

数据范围

对于所有数据,$2 \le n \le 10^5,0 \le M \le 10^9,0 \le A_i \le 10^9$。

50%50\% 的测试用例中,2n10002 \le n \le 1000