【每日一题】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); } }