【每日一题】8月5日—做题
做题
https://ac.nowcoder.com/acm/contest/6896/A
链接:https://ac.nowcoder.com/acm/contest/6896/A
来源:牛客网
题目描述:
有 n 个题目,m 分钟,做完每个题目所花费的时间是不一样的,求牛可乐最多可以做出多少个题目。
输入描述:
第一行是空格分隔的两个整数 n,m,表示有 n 个题目和 m 分钟。
第二行有 n 个非负整数 a1,a2,a3,...,an. ai表示牛可乐 做出第 i 个题目所需要的时间
输出描述:
输出一行一个整数表示牛可乐能做出的最多的题目数量。
将输入的n个排序,每次输入用m去减,小于0就退出循环。
注意:m的大小会超过int最大值,用BigInteger。(自己踩得坑。。找了半天错误)
import java.util.*;
import java.math.*;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n=in.nextInt();
BigInteger m=in.nextBigInteger();
int[] arr=new int[n];
int i=0;
while(i<n){
arr[i++]=in.nextInt();
}
Arrays.sort(arr);
int k=0;
while(k<n){
BigInteger a=BigInteger.valueOf(arr[k]);
m=m.subtract(a);
if(m.compareTo(BigInteger.ZERO)!=-1){
k++;
}else{
break;
}
}
System.out.println(k);
}
}
CVTE公司福利 691人发布