#include using namespace std; int min ( int a, int b ) { return a >= b ? b : a; } int maxim ( int a, int b ) { return a >= b ? a : b; } int calculateMax ( int * firstS, int * secondS, int height ) { int max = 0; for ( int i = 0; i < height; i++ ) { for ( int j = 0; j < height; j++ ) { max += min( firstS[i], secondS[j] ); } } return max; } int main() { int cases; cin >> cases; int height = 0; for ( int i = 0; i < cases; i++ ) { cin >> height; int min1 = 0, min2 = 0; int *firstSight = new int[height]; int *secondSight = new int[height]; for ( int j = 0; j < height; j++ ) { cin >> firstSight[j]; min1 += firstSight[j]; } for ( int j = 0; j < height; j++ ) { cin >> secondSight[j]; min2 += secondSight[j]; } int max = calculateMax(firstSight, secondSight, height); cout << "Minimalni budova obsahuje " << maxim(min1, min2) << " kostek, maximalni " << max << " kostek." << endl; delete [] firstSight; delete [] secondSight; } return 0; }