만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

XOR 카드 게임

면접 대비

시간 제한1초메모리 제한1024 MB

요약
카드를 연속된 2장 또는 3장씩 묶어 각 묶음의 XOR 값에 있는 1비트 개수의 합을 최대로 만드는 문제입니다. 마지막에 1장이 남으면 0점입니다.
난이도

쉬움10점 중 3점

유형
동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

XOR 카드 게임은 NN장의 카드 더미에서 맨 위부터 카드를 두 장 또는 세 장씩 가져가 점수를 얻는 게임이다. 점수는 다음 단계를 거쳐 누적해서 얻는다.

  1. 한 번에 가져간 카드에 적힌 번호를 XOR 연산한다.
  2. 1에서 구한 값을 이진수로 나타냈을 때 1의 개수만큼 점수를 얻는다.

게임을 진행할 때 주의할 점이 있다. 마지막에 카드 한 장이 남는 경우가 생길 수 있는데, 이때는 얻은 점수를 모두 잃고 0점으로 게임이 끝난다. 이 게임에서 얻을 수 있는 최고 점수를 구하시오.

입력

첫째 줄에 카드 더미에 있는 카드의 개수 NN이 주어진다. (1≤N≤100 000)(1 \le N \le 100\,000)

둘째 줄에 각 카드에 적힌 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다. (20≤Ai<210;(2^0 \le A_i < 2^{10}; AiA_i는 카드 더미의 위에서부터 ii번째 카드에 적힌 수이다.))

출력

이 게임에서 얻을 수 있는 최고 점수를 출력한다.

힌트

비트 XOR 연산자에 대한 자세한 내용은 위키백과에서 확인할 수 있다.

예제3

  1. 예제 1

    입력
    5
    2 1 3 8 4
    
    예상 출력
    6
    
  2. 예제 2

    입력
    7
    67 351 9 1023 497 261 1001
    
    예상 출력
    18
    
  3. 예제 3

    입력
    1
    5
    
    예상 출력
    0