#include #include using namespace std; typedef long long ll; int a[1000], b[1000]; int main() { int T; scanf("%d", &T); for (int t = 1; t <= T; t++) { int K; scanf("%d", &K); int suma = 0, sumb = 0; for (int i = 0; i < K; i++) { scanf("%d", &a[i]); suma += a[i]; } for (int i = 0; i < K; i++) { scanf("%d", &b[i]); sumb += b[i]; } int minimum = 0, maximum = 0; if (suma != 0) { sort(a, a+K); sort(b, b+K); int i = 0, j = 0; while (a[i] == 0) i++; while (b[j] == 0) j++; while (i < K && j < K) { int cur = a[i]; int ca = 0, cb = 0; while (i < K && a[i] == cur) { i++; ca++; } while (j < K && b[j] == cur) { j++; cb++; } minimum += max(ca, cb) * cur; //printf("# ca=%d, cb=%d, cur=%d\n", ca, cb, cur); } for (int i = 0; i < K; i++) { for (int j = 0; j < K; j++) { maximum += min(a[i], b[j]); } } } printf("Minimalni budova obsahuje %d kostek, maximalni %d kostek.\n", minimum, maximum); } return 0; }