XNOR의 반란
면접 대비시간 제한1초메모리 제한1024 MB
N개의 B비트 정수에서 하나 이상을 골라 순서를 유지한 채 차례로 XNOR한 값이 최대가 되도록 한다.
문제
PS 문제에는 항상 XOR만 사용된다는 점에 분노한 XNOR이 음이 아닌 정수 개를 모아 반란을 일으키기로 했다!
XNOR은 체계적이기 때문에, 반란을 일으키기 전 반란의 강도를 계산해 보기로 했다. XNOR이 일으키는 반란이기 때문에, 반란의 강도는 주어진 수를 앞에서부터 차례로 XNOR한 결과가 된다. XNOR이 모은 정수들은 모두 부호 없는 비트 정수로 표현할 수 있기 때문에, 비트 정수 간의 XNOR을 사용한다.
반란의 강도가 높을수록 성공할 확률이 높아지기 때문에, XNOR은 개의 수 중 하나 이상의 수를 선택해서 반란의 강도를 최대화하기로 했다. 이때 선택된 수의 순서를 바꿀 수는 없다.
입력
첫 번째 줄에 XNOR이 모은 수의 개수 과, XNOR이 사용하는 비트의 수 가 공백으로 구분되어 주어진다.
두 번째 줄에 XNOR이 모은 개의 음이 아닌 정수 이 10진수의 형태로 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 XNOR이 만들어 낼 수 있는 최대 반란의 강도를 출력한다.
힌트
두 수의 Bitwise XNOR 연산은 두 수를 이진수로 변환한 뒤, 각 비트를 비교하여 같으면 , 다르면 을 비트별로 계산하는 연산이다. 예로, 가 된다.