1、题目:
2、思路:
- 每组有两行数据,将两行数据分配到两个数组中,每个数组中的元素按照从大到小排序,第一个数组第一个元素乘以第二个数组最后一个元素,第一个数组第二个元素乘以第二个数组倒数第二个元素,以此类推,最后相加即为所求
3、程序代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner get=new Scanner(System.in);
int T=get.nextInt();
for(int n=0;n<T;n++) {
int answer=0;
int num=get.nextInt();
int first[]=new int[num];
int second[]=new int[num];
for(int i=0;i<num;i++) {
first[i]=get.nextInt();
}
for(int i=0;i<num;i++) {
second[i]=get.nextInt();
}
sort(first);
sort(second);
for(int i=0;i<num;i++) {
answer+=first[i]*second[num-i-1];
}
System.out.println(answer);
}
get.close();
}
public static void sort(int arr[]) {//从大到小排序
for(int i=0;i<arr.length-1;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[i]<arr[j]) {
int sort=arr[i];
arr[i]=arr[j];
arr[j]=sort;
}
}
}
}
}