#include #include #include using namespace std; void process() { int n, x, sum1=0, sum2=0, tmpi; int max = 0; scanf("%d", &n); vector v1, v2, tmp; for(int i = 0; i < n; i++) { scanf("%d", &x); v1.push_back(x); sum1 += v1[i]; } for(int i = 0; i < n; i++) { scanf("%d", &x); v2.push_back(x); sum2 += v2[i]; } sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); reverse(v1.begin(), v1.end()); reverse(v2.begin(), v2.end()); if(sum2 > sum1) { tmp = v1; v1 = v2; v2 = tmp; tmpi = sum1; sum1 = sum2; sum2 = tmpi; } int largest = v1[0] > v2[0] ? v1[0] : v2[0]; int i = 0, j = 0; for(int v = largest; v > 0; v--) { while(i < n && v1[i] == v) { i++; } while(j < n && v2[j] == v) { j++; } max += i * j; } unique(v1.begin(), v1.end()); unique(v2.begin(), v2.end()); int min = sum1; for(int i = 0; i < n; i++) { bool found = false; for(int j = 0; j < n; j++) { if(v2[i]==v1[j]) { found = true; break; } } if(!found) min += v2[i]; } printf("Minimalni budova obsahuje %d kostek, maximalni %d kostek.\n",min, max); } int main() { int n; scanf("%d", &n); for(int i =0; i