Cho số nguyên dương \(n\) (\(n\) 𝑐ℎẵ𝑛) và dãy số nguyên \(a_{1},\ a_{2},\ \ldots\ ,\ a_{n}\). Trọng
số
của cặp \((i,\ j)\), kí hiệu là \(P(i,\ j)\) = \(a_{i}\) 𝑋𝑂𝑅 \(a_{j}\) \((1 \leq
\ i,j \leq n,\ i\ eq \ j)\). Ghép các số trong dãy trên thành
\(\frac{n}{2}\) cặp, khi đó trọng số
của dãy bằng tổng trọng số của \(\frac{n}{2}\) cặp.
Yêu cầu: Tìm cách ghép các số thành \(\frac{n}{2}\) cặp sao trọng số của dãy
nhận
giá trị nhỏ nhất và lớn nhất.
Dữ liệu vào:
Dòng đầu tiên chứa số nguyên \(n\ (1\ \leq n \leq 20)\);
Dòng thứ \(i\) trong \(n\) dòng tiếp theo chứa số nguyên \(a_{i}\ (a_{i}\ \leq 10^{9},\ 1 \leq i \leq N)\).
Kết quả:
Gồm một dòng ghi hai số nguyên được tách nhau bằng dấu cách. Số
đầu
tiên là trọng số nhỏ nhất của dãy và số thứ hai là trọng số lớn nhất của
dãy.
Ví dụ:
Input | Output |
---|---|
4 1 2 3 4 | 6 10 |
Giải thích: Có 3 cách ghép cặp như sau:
Cách 1: (1,2) và (3, 4). Trọng số của dãy = (1 XOR 2) + (3 XOR 4) = 3 + 7 =10
Cách 2: (1,3) và (2, 4). Trọng số của dãy = (1 XOR 3) + (2 XOR 4) = 2 + 6 = 8
Cách 3: (1,4) và (2, 3). Trọng số của dãy = (1 XOR 4) + (2 XOR 3) = 5 + 1 = 6
Cách 3 là cách ghép cặp để có trọng số nhỏ nhất, cách 1 là cách ghép cặp để
có trọng số lớn nhất.
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |