만드는 중입니다

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

Thue-Morse 문자열의 접미사 배열

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

요약
Thue-Morse 문자열의 길이 2^k에 대해 접미사 배열의 p번째 값 suf[p]를 q개 질의에 답합니다. k는 최대 60입니다.
난이도

어려움10점 중 9점

유형
배열, 문자열, 분할 정복, 재귀
정답자
아직 제출이 없습니다

문제

차수가 kk인 Thue-Morse 문자열은 길이가 2k2^{k}인 문자열이다. 이 문자열의 ii번째 글자는 i−1i - 1의 이진 표현에 있는 1의 개수가 짝수이면 A, 홀수이면 B이다.

길이가 nn인 문자열 ss의 접미사 배열은 11부터 nn까지의 정수로 이루어진 순열 sufsuf이다. s[suf[1]..n],s[suf[2]..n],…,s[suf[n]..n]s[suf[1]..n], s[suf[2]..n], \ldots, s[suf[n]..n]이 ss의 공백이 아닌 모든 접미사를 사전순으로 나열한 목록이 되도록 정한다.

차수가 kk인 Thue-Morse 문자열의 접미사 배열을 sufsuf라고 하자. suf[p1],suf[p2],…,suf[pq]suf[p_1], suf[p_2], \ldots, suf[p_q]의 qq개 값을 구한다.

입력

첫 줄에 Thue-Morse 문자열의 차수 kk와 질의의 개수 qq가 주어진다 (0≤k≤600 \le k \le 60, 1≤q≤1051 \le q \le 10^5).

둘째 줄에는 공백으로 구분된 qq개의 정수 p1,p2,…,pqp_1, p_2, \ldots, p_q가 주어진다. 이는 구해야 할 인덱스이다 (1≤pi≤2k1 \le p_i \le 2^k).

출력

qq개의 답을 공백으로 구분하여 출력한다.

힌트

차수가 33인 Thue-Morse 문자열은 ABBABAAB이다.

예제1

  1. 예제 1

    입력
    3 8
    1 2 3 4 5 6 7 8
    
    예상 출력
    6 7 4 1 8 5 3 2