請調整每組數的排列順序,使得兩組數據相同下標元素對應相乘,然後相加的和最小。要求程序輸出這個最小值。
例如兩組數分別爲:1 3 -5和-2 4 1
那麼對應乘積取和的最小值應爲:
(-5) * 4 + 3 * (-2) + 1 * 1 = -25
n<=8,T<=1000
2
3
1 3 -5
-2 4 1
5
1 2 3 4 5
1 0 1 0 1
樣例輸出
-25
6
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int sum=0;
while(n!=0){
int m=in.nextInt();
int[] a=new int[m];
int[] b=new int[m];
for(int i=0;i<m;i++){
a[i]=in.nextInt();
}
for(int i=0;i<m;i++){
b[i]=in.nextInt();
}
Arrays.sort(a);
Arrays.sort(b);
for(int i=0,j=a.length-1;i<a.length;i++,j--){
sum+=a[i]*b[j];
}
System.out.println(sum);
sum=0;
n--;
}
}
}