锅巴殿下 2021-10-24 08:06 采纳率: 100%
浏览 14
已结题

感觉写得挺对的,但是没法通过,为啥啊

【题目描述】
元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。
你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

输入
第1行包括一个整数w,为每组纪念品价格之和的上限。
第2行为一个整数n,表示购来的纪念品的总件数。
第3~n+2行每行包含一个正整数pi (5 <= pi <= w),表示所对应纪念品的价格。

输出
包含一个整数,即最少的分组数目。
样例输入
100
9
90
20
20
30
50
60
70
80
90
样例输出
6

#include<cstdio>
#include<cmath>
using namespace std;

int a[205];

int main()
{
    int w,n,temp,i,j;
    int t=1;
    scanf("%d",&w);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        if(a[i]+a[n]>w)
        {
            t++;
            n--;
        }
        else if(a[i]+a[n]<w)
        {
            i++;
            n--;
            t++;
        }
    }
    printf("%d",t);
    
    return 0;
 }

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月1日
    • 创建了问题 10月24日

    悬赏问题

    • ¥15 根据历年月数据,用Stata预测未来六个月汇率
    • ¥15 DevEco studio开发工具 真机联调找不到手机设备
    • ¥15 请教前后端分离的问题
    • ¥100 冷钱包突然失效,急寻解决方案
    • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
    • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
    • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
    • ¥15 vscode开发micropython,import模块出现异常
    • ¥20 Excel数据自动录入表单并提交
    • ¥30 silcavo仿真,30分钟,只需要代码