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

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务