#include #include int main(void) { int testCases; scanf("%d", &testCases); for(int i = 0; i < testCases; i++){ int max = 0; int min = 0; int size; scanf("%d", &size); int* a = new int[size+1]; int* b = new int[size+1]; for(int x = 1;x<=size;x++){ scanf("%d",&(a[x])); } for(int x = 1;x<=size;x++){ scanf("%d",&(b[x])); } for(int xx = 1;xx<=size;xx++){ int maxv = b[xx]; //printf("maxv %d\n",maxv); for(int yy = 1;yy<=size;yy++){ if(a[yy] > maxv){ max+=maxv; }else{ max+=a[yy]; } } } for(int xxx = 1;xxx<=size;xxx++){ for(int yyy = 1;yyy<=size;yyy++){ if(a[xxx]==0) continue; if(a[xxx]==b[yyy]){ //printf("-%d\n",a[xxx]); min+=a[xxx]; break; } } } //printf("-%d\n",min); for(int xxx = 1;xxx<=size;xxx++){ bool fnd = false; for(int yyy = 1;yyy<=size;yyy++){ if(b[xxx]==0) continue; if(b[xxx]==a[yyy]){ a[yyy]=0; fnd = true; } } if (!fnd){ min+=b[xxx];} } /* for(int xxx = 1;xxx<=size;xxx++){ for(int yyy = 1;yyy<=size;yyy++){ if(a[xxx]!=0 && b[yyy]!=0){ //printf("fnd %d %d\n",a[xxx],b[yyy]); if (a[xxx] > b[yyy]){ min+=a[xxx]; }else{ min+=b[yyy]; } a[xxx]=0; b[yyy]=0; } } }*/ /* for(int xxx = 1;xxx<=size;xxx++){ min+=b[xxx]; } */ printf("Minimalni budova obsahuje %d kostek, maximalni %d kostek.\n",min,max); free(a); free(b); } return 0; }