import java.util.LinkedList; import java.util.Scanner; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author kontris */ public class stavitel { static Scanner sc = new Scanner(System.in); static int[] front, right; static int[][] max; static int[][] min; public static void main(String[] args) { int count = sc.nextInt(); int k; for (int q = 0; q < count; q++) { // ---- nacitanie sssss k = sc.nextInt(); front = new int[k]; right = new int[k]; max = new int[k][k]; min = new int[k][k]; for (int i = 0; i < k; i++) { front[i] = sc.nextInt(); } for (int i = 0; i < k; i++) { right[i] = sc.nextInt(); } // ---- nacitanie xxxxx for (int i = 0; i < k; i++) { for (int j = 0; j < k; j++) { max[i][j] = front[j]; } } /* int m = 0; for (int i = 0; i < k; i++) { for (int j = 0; j < k; j++) { m += max[i][j]; System.out.print(max[i][j] + " "); } System.out.println(""); } System.out.println("");*/ for (int j = 0; j < k; j++) { for (int i = k - 1; i >= 0; i--) { if (max[j][i] > right[j]) { max[j][i] = right[j]; } } } int maxC = 0; for (int i = 0; i < k; i++) { for (int j = 0; j < k; j++) { maxC += max[i][j]; } } // System.out.println("max kociek= " + maxC); // vypis(k); // int index; // for (int i = 0; i < k; i++) { // index = -1; // if (front[i] != 0) { // for (int j = k-1; j >=0; j--) { // if (front[i] == right[j]) { // index = j; // break; // } else if (front[i] < right[j]) { // if (index == -1) { // index = j; // } else { // if (right[index] > right[j]) { // index = j; // } // } // } // } // min[i][index] = front[i]; // } //// vypis(k); // } // vypis(k); // boolean placed; // for (int j = 0; j < k; j++) { // if (right[j] != 0) { // placed = false; // for (int i = 0; i < k; i++) { // if (min[i][j] == right[j]) { // placed = true; // break; // } // } // if (!placed) { // for (int i = 0; i < k; i++) { // if (right[j] <= front[i]) { // min[i][j] = right[j]; // break; // } // } // } // } // } // vypis(k); int minC = 0; LinkedList frontList = new LinkedList<>(); LinkedList rightList = new LinkedList<>(); for (int i = 0; i < k; i++) { frontList.add(front[i]); rightList.add(right[i]); } for (Integer i : frontList) { if(rightList.contains(i)){ rightList.remove(i); } } for (Integer integer : rightList) { minC += integer; } for (Integer integer : frontList) { minC += integer; } /* 1 4 2 0 3 1 1 1 2 3 */ System.out.println("Minimalni budova obsahuje "+minC+" kostek, maximalni "+maxC+" kostek."); //Minimalni budova obsahuje 7 kostek, maximalni 17 kostek. } } // private static void vypis(int k) { // for (int i = 0; i < k; i++) { // for (int j = 0; j < k; j++) { // // System.out.print(min[i][j] + " "); // } // System.out.println(""); // } // System.out.println(""); // } }