친구들의 원
시간 제한7초메모리 제한1024 MB
원형으로 앉은 n명의 카드 값을 연속된 구간으로 나눌 때, 각 구간의 비트 AND가 0이 아닌 방법의 수를 998244353으로 나눈 나머지로 구합니다.
문제
원형으로 둘러앉은 친구들이 있다. 각 친구는 양의 정수가 적힌 카드를 들고 있다. 친구들의 원을 하나 이상의 그룹으로 나누려고 한다. 각 그룹은 원에서 연속된 구간이어야 한다. 또한 각 그룹에 속한 구성원들의 카드에 적힌 값을 모두 비트 AND한 결과가 0이 아니어야 한다. 친구들의 원을 그룹으로 나누는 방법의 수를 세어라.
입력
첫째 줄에 원에 앉은 친구의 수 ()이 주어진다. 다음 개 줄에는 각각 정수 ()가 하나씩 주어진다. 이 값들은 친구들이 앉은 순서대로 주어지는 양의 정수이다. 목록의 마지막 친구는 목록의 첫 번째 친구 옆에 앉아 있다.
출력
친구들의 원을 그룹으로 나누는 방법의 수를 출력한다. 이 수는 매우 클 수 있으므로 998,244,353으로 나눈 나머지를 출력한다.