问题标题: 酷町堂:3746哪错了?????求解

0
0
已解决
陈家傲
陈家傲
新手光能
新手光能

3746   奇偶数出列经验值:0

题目描述 Description

给定一个奇数序列和一个偶数序列,请你将他们从小到大排序后在相加,得到的和序列从大到小排序后输出。

输入描述 Input Description

第一行,一个整数n
第二行,包含n个正奇数,用一个空格隔开
第三行,包含n个正偶数,用一个空格隔开

输出描述 Output Description

一行,按题目要求输出的数字序列

样例输入 Sample Input

4 1 9 7 3 2 8 6 4

样例输出 Sample Output

17 13 7 3

数据范围及提示 Data Size & Hint

1<=n<=5,000,每个数字均小于50000000。

 

 

 

WA 10:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
long long sum,cnt;
using namespace std;
int a[100],b[100],c[100];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        cin>>b[i];
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(a[i]>a[j]){
                int t=a[i];
                a[i]=a[j];
                a[j]=t;
               }
          }
      } 
      for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(b[i]>b[j]){
                int t=b[i];
                b[i]=b[j];
                b[j]=t;
               }
          }
      }
      for(int i=1;i<=n;i++){
          c[i]=a[i]+b[i];
      }
      for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(c[i]<c[j]){
                int t=c[i];
                c[i]=c[j];
                c[j]=t;
               }
          }
      }
      for(int i=1;i<=n;i++){
          cout<<c[i]<<" ";
      } 
    return 0;
}

哪错了??


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

sort不就行了

先输入数组

之后

sort(a+1,a+1+n);
sort(b+1,b+1+n);

之后相加

最后sort(c+1,c+1+n)

输出

for(int i=n;i>=1;i--){
        cout<<c[i]<<" ";
    }

头文件别忘了#include<algorithm>

0
我要回答