抽签

测试数据来自 system/1831

时间限制:1秒  内存限制:256M


【题目描述】

  你的朋友提议玩一个游戏:将写有数字的 \(n\) 个纸片放入口袋中,你可以从口袋中抽取 3 次纸片,每次记下纸片上的数字后都将其放回口袋中。如果这 3 个纸片上数字的和为 \(m\),则你就赢,否则你朋友就赢。

  请你编写一个程序,当纸片上所写数字 \(a_1,a_2,…,a_n\) 时,计算抽取 3 次和为 \(m\) 的方案数。

【输入格式】

  第一行一个整数 \(n\) 和 \(m\)。
  第二行为 \(n\) 个整数,其中第 \(i\) 个整数 \(a_i\),表示第 \(i\) 张纸片的数字。

【输出格式】

  输出方案数。

【输入输出样例】

 Input

4 13
4 1 3 5

 Output

6

【输入输出样例解释】

  6种方案如下:
  3 + 5 + 5 = 13
  4 + 4 + 5 = 13
  4 + 5 + 4 = 13
  5 + 3 + 5 = 13
  5 + 4 + 4 = 13
  5 + 5 + 3 = 13

【数据限制】

  对于 \(60\%\) 的数据,\(1≤n≤1 00\)。
  对于 \(100\%\) 的数据,\(1≤n≤2 000\),\(0≤a_i≤10^6\)。

【来源】

  Mr.he

信息

ID
1822
难度
(无)
分类
其他 | 分治二分查找 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者