만드는 중입니다

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

합의 수열

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

요약
주어진 M에 대해, 아직 남은 가장 작은 양의 정수 M개의 합을 반복해 얻는 수열 B_M에 각 질의 N이 포함되는지 판별합니다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 시뮬레이션
정답자
아직 제출이 없습니다

문제

풋살 악귀 동우는 주위 사람들에게 항상 풋살을 하자며 사람을 모은다. 동우가 모은 풋살 멤버에는 재우, 종우, 현철, 준혁, 용명, 재현, 동현, 근형, 도훈, 민성, 문성, 세준 등 다양한 사람이 있었다. 이 중 많은 사람이 작년 2024 ICPC Seoul Regional이 끝난 뒤 열린 일산 풋살 모임에서 이번 <제6회 MatKor Cup:2025 Winter>의 출제자 또는 검수자로 영입되었다.

도훈이에게 수열을 선물 받은 재우는 수열의 합이 아닌 합의 수열을 다시 선물하려 한다. 재우는 다음 과정으로 합의 수열을 만든다.

처음에 모든 양의 정수가 들어 있는 집합 A=Z+A=\mathbb{Z}^+가 있다. 이 집합에서 다음 과정을 101 000 00010^{1\,000\,000}번 반복하여 새로운 수열 BMB_M을 만든다.

  1. AA에 있는 가장 작은 수 MM개를 고르고, 그 수들의 합 SS를 구한다.
  2. 고른 MM개의 수 각각에 대해, 그 수가 AA에 있으면 AA에서 지운다. 또 SS가 AA에 있으면 AA에서 지운다.
  3. SS를 BMB_M에 추가한다.

예를 들어 M=3M=3일 때 1+2+3=61+2+3=6, 4+5+7=164+5+7=16, 8+9+10=278+9+10=27, 11+12+13=3611+12+13=36, 14+15+17=4614+15+17=46과 같으므로 B3=[6,16,27,36,46,57,66,75,⋯ ]B_3=[6, 16, 27, 36, 46, 57, 66, 75, \cdots]이다.

MM이 주어지고 QQ개의 질문이 주어졌을 때, 각 질문에 대해 그 수가 BMB_M에 있는지 판단하라.

입력

첫 번째 줄에 공백으로 구분된 M(1≤M≤1018)M(1\le M\le 10^{18})과 Q(1≤Q≤105)Q(1\le Q\le 10^5)가 주어진다. 다음 QQ개의 줄에 각각 질문할 정수 N(1≤N≤1018)N(1\le N\le 10^{18})이 하나씩 주어진다.

출력

각 질문에 대해 그 수가 BMB_M에 포함되어 있으면 1을, 아니면 0을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    2 7
    3
    6
    49
    15
    10
    275631
    38472633
    
    예상 출력
    1
    0
    1
    0
    0
    0
    1
    
  2. 예제 2

    입력
    3 6
    16
    55
    57
    75
    1353
    38472657
    
    예상 출력
    1
    0
    1
    1
    0
    1