问题标题: 酷町堂:2887 小车装货

1
0
已解决
王子健
王子健
初级天翼
初级天翼
#include<bits/stdc++.h>
using namespace std;
int n,w[100];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)cin>>w[i];
    sort(w+1,w+n+1);
    int maxn=-1;
    for(int i=1;i<=n/2;i++)maxn=max(w[i]+w[n-i+1],maxn);
    cout<<maxn; 
    return 0;   
} 

八十分,请大佬告诉我咋错的。


0
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼

Runtime Error: 数组越界,又称RE

 

数据范围及提示 Data Size & Hint

N为偶数且N≤1000

 

所以你的W数组只开到100会使N大于等于100的数据RE,但是只要你把W数组开到1010就可以避免RE。

int n,w[100];
改为
int n,w[1010];
即可AC
1
1
1
陈泉宏
陈泉宏
高级守护
高级守护

将w[100]改为w[1010],这样AC!~

陈泉宏在2018-10-27 13:12:44追加了内容

1
孙文轩
孙文轩
新手守护
新手守护

这是因为你忘看题目要求了,n是>=1000的,所以w数组要定义1002个

望采纳

1
刘景程
刘景程
新手光能
新手光能
{
    int n,a[1001],maxn=-1;
    输入>>n;
    for(int i=1;i<=n;++i)cin>>a[i];
    sort(a+1,a+n+1);
    for(int i=1;i<=n/2;++i)
    {
        maxn=max(maxn,a[i]+a[n-i+1]);
    }
    cout<<maxn;
} 

 

0
0
我要回答