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

相关推荐

2024-12-30 22:31
吉首大学 Web前端
工字钢写代码:改成吉林就OK了
点赞 评论 收藏
分享
Aki-Tomoya:窝趣,人家这是先富带动后富,共同富裕了属于是
投递英伟达等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务