给定两个整数数组
//array1 array2 数组元素按升序排列
// 假设从arr1 arr2中分别取出一个元素,可构成一对元素
// 现在需要取出k对元素,并对取出的所有元素求和
// 计算和的最小值
// 注意:两对元素对应arr1 arr2的下标是相同的
// 视为同一对元素
//输入描述
// 输入两行数组arr1 arr2
// 每行首个数字为数组大小size 0<size<=100
// arr1,2中的每个元素 0< <1000
// 接下来一行 正整数k 0<k<=arr1.size * arr2.size
// 输出描述
// 满足要求的最小值
// 例子
//输入
// 3 1 1 2
// 3 1 2 3
// 2
//输出
// 4
//说明:用例中需要取两个元素,
// 取第一个数组第0个元素与第二个数组第0个元素组成一个元素
// [1,1]
//取第一个数组第1个元素与第二个数组第0个元素组成一个元素
// [1,1]
//求和为1+1+1+1=4 ,满足要求最小
————————————————
#include<stdio.h>
int main()
{
int i,j,k,n,m,t=0,sum=0;
int arr1[100]={0},arr2[100]={0},arr3[10000]={0};
scanf("%d ",&n);
for(i=0;i<n;i++)
{
scanf("%d ",&arr1[i]);
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d ",&arr2[i]);
}
scanf("%d",&k);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
arr3[t]=arr1[i]+arr2[j];
t++;
}
}
for(i=0;i<m*n;i++)
{
for(j=i+1;j<m*n;j++)
{
if(arr3[i]>arr3[j])
{
int temp=arr3[i];
arr3[i]=arr3[j];
arr3[j]=temp;
}
}
}
for(i=0;i<k;i++)
{
sum+=arr3[i];
}
printf("%d",sum);
}