兩組資料相同下標元素對應相乘,然後相加的和最小
阿新 • • 發佈:2018-11-08
問題描述
給兩組數,各n個。
請調整每組數的排列順序,使得兩組資料相同下標元素對應相乘,然後相加的和最小。要求程式輸出這個最小值。
例如兩組數分別為:1 3 -5和-2 4 1
那麼對應乘積取和的最小值應為:
(-5) * 4 + 3 * (-2) + 1 * 1 = -25
輸入格式
第一個行一個數T表示資料組數。後面每組資料,先讀入一個n,接下來兩行每行n個數,每個數的絕對值小於等於1000。
n<=8,T<=1000
輸出格式
一個數表示答案。
樣例輸入
2
3
1 3 -5
-2 4 1
5
1 2 3 4 5
1 0 1 0 1
import java.util.Arrays; import java.util.Scanner; public class ALGO53 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); while((m--)>0){ int n = sc.nextInt(); int arr [] = new int[n]; int arr1 [] = new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } for(int i=0;i<n;i++){ arr1[i]=sc.nextInt(); } Arrays.sort(arr); Arrays.sort(arr1); int sum =0; for(int i=0;i<n;i++){ sum+=(arr[i]*arr1[n-i-1]); } System.out.println(sum); } } }
樣例輸出
-25
6