打虎英雄武松接到了景阳冈动物园的求助信,信上说:最近我们动物园逃跑了N只老虎,请您把它们抓回来!,武松接到后立马赶到现场。当他走到半山腰时,发现了这群老虎。每只老虎身上都挂着一块牌子,上面写着它的武力值(整数)。武松提出与老虎逐个单挑,输了的老虎就要回到动物园。老虎们同意了。
打老虎是个体力活,当武松与某只老虎PK时只有武松的武力值M不小于这只老虎的武力值A才能打赢。当然武松此时的武力值也要减小A,而且不能恢复。
武松想多抓几只回去,帮他算一算,武松最多能抓几只老虎回去?(老虎是一个一个上和武松单挑)
输入示例
武力值:100
老虎只数:8
各只老虎的能力值:
30 200 60 30 20 150 20 10
输出
4
#include <iostream>
using namespace std;
int fun(int b[],int t,int m)
{
int a;
for (a = 0; a <= t - 1; a++)
{
cin >> b[a];
}
int i=0, j=0;
for (i = 0; i <= t - 1; i++)
{
for (j = 0; j <= t - 1 - i; j++)
{
if (b[j]>b[j+1])
{
int tmp;
tmp = b[j];
b[j] = b[j + 1];
b[j + 1] = tmp;
}
}
}
for (i = 0; i <= t; i++)
{
cout << b[i] << "\t";
}
while (m > 0)
{
for (i = 0; i <= t-1; i++)
{
m=m - b[i];
}
i--;
return i;
}
}
int main()
{
int t,m;
cin >> t>>m;
int b[100];
cout << fun(b, t, m) << endl;
return 0;
}