顺丰9.7笔试 算法搬砖题

这题的思路我是先排序数组,从后面遍历k个可以用卡车运输的,如果卡车运的时间比手工搬长,就提前退出循环,剩下的砖都是手工搬。考虑了int溢出,还是通过不了全部,一直是82%,有友友说说思路嘛
public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), x = sc.nextInt(), y = sc.nextInt(), k = sc.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
        }
        Arrays.sort(nums);
        long ans = 0;
        int end = n - 1;
        for (int i = 0; i < k; i++) {
            long tmp = nums[end] * x;
            if (tmp < y) {
                break;
            }
            ans += y;
            end--;
        }
        for (int i = 0; i <= end; i++) {
            ans += nums[i] * x;
        }
        System.out.println(ans);

    }

}

#顺丰#
全部评论
楼主解决了吗
点赞 回复 分享
发布于 2022-09-07 22:38 上海

相关推荐

头像
09-13 17:44
拐儿中学 Java
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务