%ddd 2023-11-17 20:20 采纳率: 86.7%
浏览 6
已结题

跳跳的书包,C语言编程

题目描述
n个物品,已知每个物品的重量,书包的承重固定,每个书包最多放两个物品,可以放一个物品或者两个物品。显然总重量要求总不超过书包承重,假设每个物品的重量都不超过书包承重,问最少需要几个书包?
输入
第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示物品个数和书包的承重。
接下来n行,每行一个正整数,表示每个物品的重量。重量不超过1000000000,并且每个物品的重量不超过m。
输出
输出一行,一个整数表示最少需要的书包个数。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-17 22:27
    关注

    【以下回答由 GPT 生成】

    #include <stdio.h>
    
    int main() {
        int n, m, weight[10000];
        scanf("%d %d", &n, &m);
        for (int i = 0; i < n; i++) {
            scanf("%d", &weight[i]);
        }
    
        int count = 0;
        for (int i = 0; i < n; i++) {
            if (weight[i] == 0) {
                continue;
            }
            for (int j = i+1; j < n; j++) {
                if (weight[j] == 0) {
                    continue;
                }
                if (weight[i] + weight[j] <= m) {
                    count++;
                    weight[i] = 0;
                    weight[j] = 0;
                    break;
                }
            }
            if (weight[i] != 0) {
                count++;
            }
        }
        printf("%d\n", count);
        return 0;
    }
    


    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月17日