슈퍼불

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

베시와 친구들이 매년 열리는 슈퍼불 대회에서 후프볼 경기를 한다. 존 농부는 이 대회를 최대한 흥미롭게 만드는 일을 맡았다.

슈퍼불에는 팀 NN개가 참가한다. 각 팀은 11 이상 23012^{30}-1 이하의 정수 ID를 하나씩 받고, 서로 다른 팀은 서로 다른 ID를 받는다. 슈퍼불은 토너먼트 방식이다. 경기가 한 번 끝나면 존 농부가 맞붙은 두 팀 중 어느 팀을 탈락시킬지 고르고, 탈락한 팀은 더 이상 경기에 나설 수 없다. 팀이 하나만 남으면 대회가 끝난다.

존 농부는 점수에서 특이한 규칙을 발견했다. 어떤 경기든 두 팀의 합산 점수는 두 팀 ID의 비트 배타적 논리합(XOR)과 같다. 예를 들어 ID가 1212인 팀과 2020인 팀이 맞붙으면 그 경기에서 2424점이 난다. 0110001100 XOR 10100=1100010100 = 11000이기 때문이다.

존 농부는 한 경기에서 점수가 많이 날수록 그 경기가 더 흥미롭다고 본다. 그래서 대회 전체에서 나는 점수의 합이 최대가 되도록 경기를 짜려고 한다. 매 경기의 대진 상대와 탈락하는 팀은 존 농부가 자유롭게 고를 수 있다. 존 농부를 도와 점수 합의 최댓값을 구하라.

입력

첫째 줄에 팀의 수 NN이 주어진다. (1N20001 \le N \le 2000)

다음 NN개 줄에 각 팀의 ID가 한 줄에 하나씩 주어진다. ID는 11 이상 23012^{30}-1 이하의 정수이고 서로 다르다.

출력

슈퍼불에서 날 수 있는 점수 합의 최댓값을 한 줄에 출력한다.

노트

비트 배타적 논리합(XOR)은 두 정수를 이진수로 적어 놓고 같은 자리의 비트끼리 비교하는 연산이다. 두 비트 중 정확히 하나만 11이면 그 자리의 결과가 11이고, 둘 다 00이거나 둘 다 11이면 00이다. 예를 들어 1010010100(십진수 2020) XOR 0110001100(십진수 1212) =11000= 11000(십진수 2424)이다. 많은 언어에서 이 연산은 ^ 연산자로 쓴다.