XOR 카드 게임
면접 대비시간 제한1초메모리 제한1024 MB
카드 더미를 두 장 또는 세 장씩 묶어 각 묶음의 XOR 값에서 1의 개수를 점수로 얻을 때, 카드 한 장이 남지 않도록 하면서 얻을 수 있는 최고 점수를 구한다.
문제
XOR 카드 게임이란 장의 카드 더미가 있을 때, 맨 위에서부터 카드를 두 장 혹은 세 장씩 가져가 점수를 획득하는 게임이다. 이 게임에서 점수는 아래 단계를 거쳐 누적해서 획득할 수 있다.
- 한 번에 가져가는 카드들에 적혀있는 번호를 XOR 연산한다.
- 1에서 구한 값을 이진수로 변환했을 때, 1의 개수만큼 점수를 획득한다.
게임을 진행하며 주의할 점은 마지막에 카드 한 장이 남는 상황이 존재할 수 있는데, 이 경우엔 모든 점수를 잃고 0점으로 게임을 종료하게 된다. 이 게임에서 얻을 수 있는 최고 점수를 계산하시오.
입력
첫째 줄에 카드 더미에 있는 카드의 개수 이 주어진다.
둘째 줄에 각 카드에 적힌 정수 이 공백으로 구분되어 주어진다. 는 카드 더미의 위에서부터 번째 카드에 적힌 수이다.
출력
이 게임에서 획득할 수 있는 최고 점수를 출력한다.
힌트
비트 XOR (Bitwise XOR) 연산자에 대한 자세한 정보는 위키백과에서 확인할 수 있다.