XOR 카드 게임
면접 대비시간 제한1초메모리 제한1024 MB
카드를 연속된 2장 또는 3장씩 묶어 각 묶음의 XOR 값에 있는 1비트 개수의 합을 최대로 만드는 문제입니다. 마지막에 1장이 남으면 0점입니다.
문제
XOR 카드 게임은 장의 카드 더미에서 맨 위부터 카드를 두 장 또는 세 장씩 가져가 점수를 얻는 게임이다. 점수는 다음 단계를 거쳐 누적해서 얻는다.
- 한 번에 가져간 카드에 적힌 번호를 XOR 연산한다.
- 1에서 구한 값을 이진수로 나타냈을 때 1의 개수만큼 점수를 얻는다.
게임을 진행할 때 주의할 점이 있다. 마지막에 카드 한 장이 남는 경우가 생길 수 있는데, 이때는 얻은 점수를 모두 잃고 0점으로 게임이 끝난다. 이 게임에서 얻을 수 있는 최고 점수를 구하시오.
입력
첫째 줄에 카드 더미에 있는 카드의 개수 이 주어진다.
둘째 줄에 각 카드에 적힌 정수 이 공백으로 구분되어 주어진다. 는 카드 더미의 위에서부터 번째 카드에 적힌 수이다.
출력
이 게임에서 얻을 수 있는 최고 점수를 출력한다.
힌트
비트 XOR 연산자에 대한 자세한 내용은 위키백과에서 확인할 수 있다.