#include #include #define FOR(i,a,b) for(int i = (a); i < (b); i++) using namespace std; int main(){ int n; cin >> n; FOR(i,0,n){ int k; cin >> k; int l[k]; FOR(j,0,k){ cin >> l[j]; } int r[k]; FOR(j,0,k){ cin >> r[j]; } sort(l, l+k); sort(r, r+k); int dl[100007]; FOR(j,0,100007)dl[j] = 0; int dr[100007]; FOR(j,0,100007)dr[j] = 0; int c = 0; FOR(j,0,k){ if(l[j] > c){ int val = k - j; FOR(f,c,l[j]){ dl[f] = val; } c = l[j]; } } c = 0; FOR(j,0,k){ if(r[j] > c){ int val = k - j; FOR(f,c,r[j]){ dr[f] = val; } c = r[j]; } } long long max = 0; FOR(j,0,100007){ max += dr[j]*dl[j]; } long long min = 0; FOR(j,0,100007){ min += (dr[j]>dl[j])?dr[j]:dl[j]; } cout << "Minimalni budova obsahuje " << min << " kostek, maximalni " << max << " kostek." << endl; } }