delivery man

img实在是没思路了

思路是 A数组各元素减去B数组各元素,即C = A[i] - B[i]
以C的值对A和B数组排序。
A数组取前 N-Y 项,B数组取后 N-X 项
中间的取A与B数组的大者
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>

void main()
{
    int n,x,y,i,j,s=0;
    scanf("%d%d%d", &n, &x, &y);
    int a[n];
    int b[n];
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++){
        scanf("%d",&b[i]);
    }

    int k,t;
    for(i = 0;i < n-1;i ++)
    {
        k = i;
        for(j = i + 1;j < n;j ++)
            if(a[k]-b[k] < a[j]-b[j])
                k = j;
        t = a[k];
        a[k] = a[i];
        a[i] = t;
        t = b[k];
        b[k] = b[i];
        b[i] = t;
    }

    // for(i=0;i<n;i++){
    //     printf("%d ",a[i]);
    // }
    // printf("\n");
    // for(i=0;i<n;i++){
    //     printf("%d ",b[i]);
    // }
    // printf("\n");

    for(i=0;i<n;i++){
        if (i < n-y) {
            s += a[i];
        } else if (i >= x) {
            s += b[i];
        } else{
            s += a[i]>b[i] ? a[i] :b[i];
        }
    }
    printf("%d",s);
}