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

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

불일치

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

요약
각 k에 대해 비트 AND 값이 0인 크기 k의 부분수열 개수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

유형
비트 연산, 조합론, 수학
정답자
아직 제출이 없습니다

문제

음이 아닌 정수로 이루어진 길이 nn의 배열 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다. 각 kk (1≤k≤n1 \le k \le n)에 대해, 크기가 kk인 부분수열 (ai1,ai2,…,aik(a_{i_1}, a_{i_2}, \ldots, a_{i_k}, 1≤i1<…<ik≤n)1 \le i_1 < \ldots < i_k \le n) 중 비트 AND 값이 00인 것의 개수를 구한다. 답이 매우 클 수 있으므로 998 244 353998\,244\,353으로 나눈 나머지를 구한다.

두 부분수열은 어떤 인덱스 ii에 대해 원소 aia_i가 한쪽에만 포함되어 있으면 서로 다른 것으로 본다.

입력

첫 번째 줄에 정수 nn (1≤n≤2191 \le n \le 2^{19})이 주어진다. 두 번째 줄에는 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n (0≤ai<2190 \le a_i < 2^{19})이 주어진다.

출력

b1,b2,…,bnb_1, b_2, \ldots, b_n을 공백으로 구분하여 출력한다. bib_i는 k=ik = i일 때의 답을 998 244 353998\,244\,353으로 나눈 나머지이다.

예제2

  1. 예제 1

    입력
    3
    0 1 2
    
    예상 출력
    1 3 1
    
  2. 예제 2

    입력
    6
    1 2 2 7 6 7
    
    예상 출력
    0 3 9 10 5 1