084621138


私信TA

用户名:612522

访问量:532

签 名:

等  级
排  名 2082
经  验 2465
参赛次数 7
文章发表 4
年  龄 0
在职情况 学生
学  校 南京中医药大学
专  业

  自我简介:

菜且自知

TA的其他文章

解题思路:先排序;首尾数相加与w比较,符合的筛出0;分类计算出非0的数

参考代码:

#include <stdio.h>

#include <stdlib.h>

#define N 100

int main()

{

    int w;

    int n;

    int s[N];

    int i,j,c=0,temp;

    scanf("%d",&w);

    scanf("%d",&n);

    for(i=0;i<n;i++)

    {

        scanf("%d",&s[i]);

    }

    for(i=0;i<n-1;i++)

    {

        for(j=i;j<n;j++)

        {

            if(s[i]>s[j])

            {

                temp=s[i];

                s[i]=s[j];

                s[j]=temp;

            }

        }

    }

    for(i=0;i<n;i++)

    {

        for(j=n-1;j>0;j--)

        {

            if(s[i]+s[j]<=w && s[i]!=-1 && s[j]!=-1)

            {

                c++;

                s[i]=s[j]=-1;

                break;

            }

        }

    }

    for(i=0;i<n;i++)

    {

        if(s[i]!=-1)

        {

            c++;

        }

    }

    if(n%2!=0)

    {

        if(2*s[(n-1)/2]>w)

        {

            c=c-1;

        }

    }

    printf("%d",c);



    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »