实在是没思路了
思路是 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);
}