消灭怪兽
时间限制:1秒 内存限制:128M
题目描述
小可和伙伴们组队打怪兽。目前有n个人,怪兽的血量为H。每分钟都有一个人可以攻击一次,其他人需要架盾防御怪兽的攻击。每个人的攻击次数不限制,但是不能有人连续攻击两次。
现在给出所有人的攻击力,请问最少攻击多少次能消灭怪兽。
输入描述
第一行一个正整数t(1≤t≤1e5),代表有t组输入。
对于每组输入,第一行两个正整数n,H(2≤n≤1e3,1≤H≤1e9)
第二行有n个正整数ai(1≤ai≤1e9),代表每个人的攻击力
数据保证∑n∑不超过2×1e5
输出描述
对于每组输入,输出最少攻击多少次能够消灭怪兽
样例输入
3
2 4
3 7
2 6
4 2
3 11
2 1 7
样例输出
1
2
3
话不多说,上代码
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int t;
cin>>t;
while(t--){
int n,h;
cin>>n>>h;
int a[1005];
for(int i=1; i<=n; i++){
cin>>a[i];
}
long long cnt=0;
sort(a+1,a+n+1,cmp);
for(int i=1; i<=3; i++){
if(h<=0){
break;
}
if(i==3){
i=1;
}
h-=a[i];
cnt++;
}
cout<<cnt<<endl;
}
return 0;
}