Giải đấu vật


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 20M

Author:
Problem type

Hiếu và các bạn của anh ta đang tham gia giải đô vật trong lễ Tết truyền thống ở làng của anh, và Hiếu sẽ là người chịu trách nhiệm làm cho giải đấu thú vị nhất. Tổng cộng có \(N (1 \leq N \leq 2000)\) người tham gia giải đô vật. Mỗi ngươi được chỉ định một \(ID\) riêng biệt dưới dạng số nguyên trong khoảng \([1, 2^{30}-1]\) để phân biệt họ với người khác. Giải đô vật là một giải đấu loại trực tiếp - sau mỗi trận đấu, Hiếu chọn người nào đó sẽ bị loại khỏi giải, và người bị loại không thể tham gia thêm trận đấu nào nữa. Giải đấu kết thúc khi chỉ còn lại một người.

Hiếu đánh giá về điểm số trong các trận đấu bằng phép toán \(XOR\) \(ID\) hai người. Ví dụ, nếu người thứ nhất có \(ID\) là \(12\) và người thứ hai có \(ID\) là \(20\) , thì trận đấu sẽ có \(24\) điểm, vì \(01100\) \(XOR\) \(10100\) = \(11000\).

Hiếu tin rằng càng nhiều điểm được ghi trong một trận đấu thì trận đấu càng thú vị. Vì vậy, anh muốn chọn một loạt trận đấu sao cho tổng số điểm ghi được trong giải đô vật là cao nhất. Hãy giúp anh Hiếu tổ chức các trận đấu.

INPUT FORMAT

Dòng đầu tiên chứa số nguyên \(N\) duy nhất. \(N \)dòng tiếp theo chứa \(ID\) mỗi người.

OUTPUT FORMAT

In ra điểm số tối đa có thể đạt được

Ví dụ 1:

Input
4
3
6
9
10
Ouput
37

Một cách để đạt được 37 điểm như sau: Hiếu ghép người có ID 3 và ID 9, và quyết định rằng đô vật có ID 9 thắng, vì vậy các đô vật có ID 6, 9 và 10 còn lại trong giải đấu. Sau đó, anh ghép đô vật có ID 6 và ID 9, và để người có ID 6 thắng. Cuối cùng, các đô vật có ID 6 và 10 đối đầu, và người có ID 10 thắng. Tổng số điểm ghi được là (3 XOR 9) + (6 XOR 9) + (6 XOR 10) = 10 + 15 + 12 = 37.

Lời giải bài tập này: Tại đây

Group giải đáp thắc mắc: Lập trình 24h

Fanpage CLB: CLB lập trình Full House- Việt Nam

Youtube: CLB Lập Trình Full House


Comments

There are no comments at the moment.