#include #include #include typedef unsigned int uint; int main() { const size_t MAX = 100; uint front[MAX]; uint right[MAX]; uint nCases; std::cin >> nCases; for (uint iCase = 0; iCase < nCases; ++iCase) { uint size; std::cin >> size; for (uint i = 0; i < size; ++i) std::cin >> front[i]; for (uint i = 0; i < size; ++i) std::cin >> right[i]; uint max = 0; for (uint i = 0; i < size; ++i) for (uint j = 0; j < size; ++j) max += std::min(front[i], right[j]); uint min = 0; for (uint i = 0; i < size; ++i) for (uint j = 0; j < size; ++j) if (front[i] == right[j]) { min += front[i]; front[i] = 0; right[j] = 0; } min += std::accumulate(front, front + size, 0); min += std::accumulate(right, right + size, 0); std::cout << "Minimalni budova obsahuje " << min << " kostek, maximalni " << max << " kostek." << std::endl; } return 0; }