1789 問題 D: 小O的溢出
時(shí)間限制: 1s
內(nèi)存限制: 128MB 提交: 103 解決: 27
題目描述
除了學(xué)習(xí)C語言外,小O同樣喜歡各種游戲,最近小O沉迷于
一款卡牌游戲不能自拔,小O希望在游戲中獲得更高的排名
游戲的排名是根據(jù)獲得的point的數(shù)量來計(jì)算的,獲得point的
方法是用手中的卡牌去挑戰(zhàn)BOSS,造成的傷害點(diǎn)數(shù)就是能獲得的
point,point越高則排名越高,小O當(dāng)然希望自己排名越高越好了
但是他不知道怎么使用手中的卡牌能獲得更多的點(diǎn)數(shù),
不過他知道聰明的你能幫他解決這個(gè)問題,所以來找你幫忙了
為了簡化問題,我們假定小O手中擁有n張卡牌,
每張卡牌有一個(gè)攻擊力a[i],BOSS的血量為m點(diǎn)
每張卡牌最多可以使用一次(可以不用,順序隨意),
當(dāng)BOSS的血量少于等于0時(shí),不能再攻擊
因?yàn)閜oint點(diǎn)數(shù)是根據(jù)傷害計(jì)算的,
所以最后一擊的攻擊力會(huì)被全部計(jì)入傷害中
輸入
多組測試數(shù)據(jù),請讀入至文件尾
每組測試數(shù)據(jù)占兩行
第一行為兩個(gè)整數(shù)n,m,分別表示卡牌數(shù)和BOSS血量(1<=n<=100,1<=m<=10000)
第二行為n個(gè)整數(shù)表示n張卡牌的攻擊力ai(1<=ai<=10000)
輸出
對于每組測試數(shù)據(jù)輸出一個(gè)整數(shù)表示最多能獲得的point
樣例輸入
5 10
1 2 3 4 5
5 10
1 1 1 1 1
4 10
1 2 3 4
提示
零基礎(chǔ)同學(xué)可以先學(xué)習(xí)
視頻課程,包含C/C++、Python、百練、藍(lán)橋杯輔導(dǎo)、算法數(shù)據(jù)結(jié)構(gòu)等課程,提供視頻講解以及配套習(xí)題,還有老師答疑,
點(diǎn)擊這里了解課程詳情