#include #include #include int main() { int a; scanf("%d", &a); int n; int i; for(i = 0; i < a; i++) { scanf("%d", &n); int *pole = malloc(n * sizeof(int)); int *pole2 = malloc(n * sizeof(int)); char *pole3 = malloc(100000 * sizeof(char)); memset(pole3, 0, 100000 * sizeof(char)); char *pole4 = malloc(100000 * sizeof(char)); memset(pole4, 0, 100000 * sizeof(char)); int j, k, min = 0, max = 0; for(j = 0; j < n; j++) { scanf("%d", &pole[j]); pole3[pole[j]]++; } for(j = 0; j < n; j++) { scanf("%d", &pole2[j]); pole4[pole2[j]]++; } for(j = 0; j < n; j++) { for(k = 0; k < n; k++) { max += pole[j]>pole2[k] ? pole2[k] : pole[j]; } } for(i = 0; i < 100000; i++) { min += pole3[i]>pole4[i] ? pole3[i] * i : pole4[i] * i; } printf("Minimalni budova obsahuje %d kostek, maximalni %d kostek.\n", min, max); } return 0; }