만드는 중입니다

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

친구들의 원

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

요약
원형으로 앉은 n명의 카드 값을 연속된 구간으로 나눌 때, 각 구간의 비트 AND가 0이 아닌 방법의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

원형으로 둘러앉은 친구들이 있다. 각 친구는 양의 정수가 적힌 카드를 들고 있다. 친구들의 원을 하나 이상의 그룹으로 나누려고 한다. 각 그룹은 원에서 연속된 구간이어야 한다. 또한 각 그룹에 속한 구성원들의 카드에 적힌 값을 모두 비트 AND한 결과가 0이 아니어야 한다. 친구들의 원을 그룹으로 나누는 방법의 수를 세어라.

입력

첫째 줄에 원에 앉은 친구의 수 nn (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5)이 주어진다. 다음 nn개 줄에는 각각 정수 aa (1≤a<2601 \le a < 2^{60})가 하나씩 주어진다. 이 값들은 친구들이 앉은 순서대로 주어지는 양의 정수이다. 목록의 마지막 친구는 목록의 첫 번째 친구 옆에 앉아 있다.

출력

친구들의 원을 그룹으로 나누는 방법의 수를 출력한다. 이 수는 매우 클 수 있으므로 998,244,353으로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    4
    14
    13
    11
    7
    
    예상 출력
    11