Để quên

View as PDF

Submit solution

Points: 1200 (partial)
Time limit: 0.5s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, Pascal, pypy3, Python, scratch

Ngọt - để quên

Khi qua nhà bạn chơi, người ấy đã để quên một dãy số có độ dài K (2\leq K) (ở đây ta định nghĩa là mảng x có độ dài K) có tính chất với mọi giá trị a_i - a_j với 1 \leq i < j \leq K, i\ne j đều bằng nhau.

Hôm nay, khi bạn dọn lại nhà, bạn tìm được một dãy số a gồm N phần tử, bạn cần tìm trong dãy số này có bao nhiêu dãy con có thể là dãy số mà người ấy đã để quên. Hay nói cách khác, bạn cần đếm số lượng bộ K chỉ số i_1,i_2,\ldots, i_K với 1 \leq i_1 < i_2 < \ldots < i_K \leq N sao cho giá trị tuyệt đối của hiệu giữa mọi cặp phần tử đều bằng nhau, hay nói cách khác: a_{i_m} - a_{i_n} với mọi 1 \leq m < n \leq K, m \ne n.

Input

  • Dòng thứ nhất chứa hai số nguyên dương NK (2 \leq K \leq N\leq 2\times 10^5);
  • Dòng thứ hai chứa N số nguyên dương a_1,a_2,\ldots, a_N (a_i \leq 10^6)

Output

  • Ghi ra số lượng bộ chỉ số thoả mãn. Vì đáp án có thể rất lớn nên bạn chỉ cần in ra phần dư của đáp án cho (10^9+7).

Subtask

  • Subtask 1: Đảm bảo K\leq 5,\ N\leq 100 (10 điểm)
  • Subtask 2: Đảm bảo N\leq 1000. (20 điểm)
  • Subtask 3: Không có ràng buộc gì thêm. (70 điểm)

Example

Test 1

Sample input
7 3
1 7 6 1 7 6 7
Sample output
1

Test 2

Sample input
7 2
1 7 6 1 7 6 7
Sample output
21

Comments

There are no comments at the moment.