问题 1206 --【提高】请客

1206: 【提高】请客

题目描述

  

  小T和小K都是班干部,经常要为班集体做一些事情。有一天,班主任派他们一起出去执行任务,他们完成任务后回到学校已经接近傍晚,就直接赶去食堂吃晚饭了,还没到食堂门口两人又发生了争执,原因是小T和小K都争着要请对方吃饭,争到最后他俩决定以猜拳来解决争端,因为小T没带“分歧终端机”,猜拳结果当然又是小T输了,所以他要请小K吃饭~。
食堂里有100种不同的菜,每种菜有一个1到100之间的整数标号,每种菜的标号都不相同,每种菜的单价定为它的标号的平方(即标号*标号),如标号为1的菜单价为1元,标号为2的菜单价为4元,标号为3的菜单价为9元,标号为4的菜单价为16元,……
现在小T和小K要在这些菜中点N个菜,每一种菜最多只会点一个。由于小T只有S元钱,为了避免请小K吃饭后没钱坐公交车回家之类的尴尬,必须保证所点菜的总价严格小于S。
现在请你编一个程序统计有多少种不同的点菜组合,如果你能解决这个难题,小T将会额外奖励你一件奖品。

输入

仅有一行包含两个用空格隔开的整数N和S,其中1≤N≤30,1≤S≤10,000。

输出

仅有一行包含一个整数,即不同的点菜组合的总数。

样例输入输出

输入#1 复制
3 30
输出#1 复制
4

提示

【样例解释】
小T只有30元钱,他们想点3个菜,总价严格小于30元的点菜组合有以下4种: 1 2 3    总价为1+4+9=14元 1 2 4    总价为1+4+16=21元 1 3 4    总价为1+9+16=26元 2 3 4    总价为4+9+16=29元 1 2 5的点菜组合是不可以的,因为1+4+25=30元,不满足严格小于30元的条件。
【数据规模】
30%的数据满足:1≤N≤5,1≤S≤500 100%的数据满足:1≤N≤30,1≤S≤10,000

序号 标题 作者 发表时间 费用 订购数 操作