问题标题: 酷町堂:2887

1
1
已解决
徐云皓
徐云皓
新手天翼
新手天翼

2887   小车装货

题目描述 Description

现在一共有N(N为偶数)件货物,要将这N件货物运走。为了节省车的数量,现在将两件货物分为一组装在一辆车上运走。由于货物越重则要的小车租费也越贵,租费等于运的两件物品的重量之和。现在老板希望最重的一对货物的小车租费要尽可能的少。试计算运走最重的一对货物要花多少钱。

输入描述 Input Description

第一行,一个整数,N
接下来一行,N个整数,w1 w2 ... wN

输出描述 Output Description

输出运走最重的一对货物要花多少钱

样例输入 Sample Input

 

6
1 2 3 4 5 6

样例输出 Sample Output

 

7

数据范围及提示 Data Size & Hint

N为偶数且N≤1000


0
已采纳
杨子逸
杨子逸
新手天翼
新手天翼
    while(l<=r)
    {
        if(a[l]+a[r]>sum)
        sum=a[l]+a[r];
        l++,r--;
    }
1
毕小曼
毕小曼
初级光能
初级光能
输入>>n;
    for循环(int i=1;i<=n;i++)输入>>w[i];
    sort排序(w+1,w+n+1);
    定义整型变量 maxn=-1;
    for循环(int i=1;i<=n/2;i++)maxn=max(w[i]+w[n-i+1],maxn);
    输出<<maxn;

别忘了定义n和w数组

0
桑烁
桑烁
高级光能
高级光能

先排序到一个数组,在首尾相加(n=10就是a[0]+a[9]),再找最大的数

0
孙文轩
孙文轩
新手守护
新手守护

int n,w[1002];(否则超时)
    用sort排序(w+1,w+n+1);
   再定义一个max变量;
    for(int i=1;i<=n/2;i++)

max=max(w[i]+w[n-i+1],max);(就是最小的+最大的,第二小的+第二大的......找出最大一组)

望采纳

0
我要回答