解题思路
求最小乘积,即求最大值乘以最小值之和,将两个数组用sort()算法,进行升序排列,然后数组1正序,数组2逆序,两者对应相乘,即为所求。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
int N;
cin>>N;
int a[N],b[N];
for(int i=0;i<N;i++)
cin>>a[i];
for(int i=0;i<N;i++)
cin>>b[i];
sort(a,a+N);
sort(b,b+N);
int sum=0;
for(int i=0;i<N;i++)
sum+=a[i]*b[N-1-i];
cout<<sum<<endl;
}
return 0;
}