顺丰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 上海

相关推荐

不愿透露姓名的神秘牛友
07-23 14:13
这是聊岔撇了吗,相同的话问了两遍
吴offer选手:上下文切换这一块
点赞 评论 收藏
分享
Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
小博真爱学习:真心建议别找太mini的
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务