아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

가장 긴 부분 수열 구하기

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

요약
선택한 원소 전체의 비트 AND가 0이 아니게 되는 가장 긴 부분 수열의 길이를 구한다.
난이도

보통10점 중 6점

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

문제

NN개의 자연수로 이루어진 수열 A=A_1,A_2,…,A_NA = \\{A\_1, A\_2, …, A\_N\\}가 주어진다.

다음의 조건을 모두 만족하는 AA의 부분 수열 A_i_1,A_i_2,...,A_i_m\\{A\_{i\_1}, A\_{i\_2}, ..., A\_{i\_m}\\} 중 가장 긴 수열의 길이를 출력하라.

  1. A\_{i\_1} \~\\&\~ A\_{i\_2} \~\\&\~ … \~\\&\~ A\_{i\_m} \neq 0 (\\&: Bitwise AND)
  2. 1≤i_1<i_2 <…<i_m≤N1 \leq i\_1 < i\_2  < … < i\_m \leq N

예를 들어 A=5,6,7,11,15A = \\{5, 6, 7, 11, 15\\}인 경우,

  • 5,6,11\\{5, 6, 11\\}은 조건 1을 만족하지 않는다. (0101\_{2} \~\\&\~ 0110\_{2} \~\\&\~ 1011\_{2} = 0000\_{2})
  • 5,5\\{5, 5\\}는 조건 2를 만족하지 않는다. (i_1≮i_2i\_1 \nless i\_2)
  • 5,6,7,15\\{5, 6, 7, 15\\}는 조건을 모두 만족하는 가장 긴 부분 수열이다.

입력

첫 번째 줄에는 수열 AA의 길이를 나타내는 정수 NN이 주어진다. 두 번째 줄에는 수열 AA의 각 원소 A_iA\_i가 공백으로 구분되어 주어진다.

  • 1≤N≤ 1,000,0001 \leq N \leq 1,000,000
  • 1≤A_i ≤ 1,000,0001 \leq A\_i \leq 1,000,000 (1≤ i≤ N1 \leq i \leq N)

출력

첫 번째 줄에 조건을 모두 만족하는 가장 긴 부분 수열의 길이를 출력한다.

예제1

  1. 예제 1

    입력
    5
    5 6 7 11 15
    
    예상 출력
    4