만드는 중입니다

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

덱 빌딩 게임

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

요약
N장의 카드에서 겹치지 않는 두 덱을 골라 두 덱의 XOR 값이 같은 경우의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

친구와 덱 빌딩 게임을 하고 있다. 카드는 11번부터 NN번까지 NN장이 있고, ii번 카드의 값은 AiA_i이다.

나와 친구가 각각 쓸 덱을 하나씩 만들려고 한다. 한 카드를 두 덱에 모두 넣을 수는 없다. 모든 카드를 사용하지 않아도 된다. 덱이 비어 있어도 된다.

덱의 위력은 덱에 있는 카드 값들의 비트 XOR이다. 빈 덱의 위력은 00이다.

두 덱의 위력이 같으면 게임이 균형 상태이다.

게임이 균형을 이루도록 두 덱을 만드는 방법의 수를 구하라. 적어도 한 덱에 서로 다른 카드가 들어 있으면 다른 방법으로 본다. 답이 매우 클 수 있으므로 998244353998244353으로 나눈 나머지를 출력한다.

입력

첫째 줄에 정수 NN이 주어진다 (2≤N≤1000002 \le N \le 100000).

둘째 줄에 NN개의 정수 A1,A2,…,ANA_1, A_2, \ldots, A_N이 주어진다 (1≤Ai≤1000001 \le A_i \le 100000).

출력

균형을 이루는 두 덱의 작성 방법 수를 998244353998244353으로 나눈 나머지를 출력한다.

예제4

  1. 예제 1

    입력
    4
    16 12 4 8
    
    예상 출력
    9
    
  2. 예제 2

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

    입력
    2
    1 1
    
    예상 출력
    5
    
  4. 예제 4

    입력
    6
    1 1 1 2 2 2
    
    예상 출력
    169