문제
양의 정수
N = 1 인 경우:S_N =1(즉,1한 글자로 이루어진 문자열)N ≥ 2 이고 N이 짝수인 경우:S_N = S_{⌊N/2⌋} 0 S_{⌊N/2⌋} (즉,0한 글자 좌우에S_{⌊N/2⌋} 가 이어진 문자열)N ≥ 2 이고 N이 홀수인 경우:S_N = S_{⌊N/2⌋} 1 S_{⌊N/2⌋} (즉,1한 글자 좌우에S_{⌊N/2⌋} 가 이어진 문자열)
위의 약속에 따라
위의 약속에서 적용이 가능한 것은
3 번이므로S_{13} =S_6 1 S_6 임을 알수 있다.S_6 은 위의 약속의2 번에 의해S_3 0 S_3 이 되므로S_{13} =S_6 1 S_6 =S_3 \, 0 \, S_3 \, 1 \, S_3 \, 0 \, S_3 이다.S_3 은 위의 약속의3 번과1 번을 순서대로 적용하면111이 된다.따라서
S_{13} =111011111110111이다.
양의 정수
위의 예에서 질의가
만약, 1101111111011에는
참고
부분문자열의 정의 : 길이가
예를 들어 0100101이라면, 001이고, 0101이다. 따라서 001과 0101은 문자열 0100101의 부분문자열이다. 하지만 1010은 문자열 0100101의 부분문자열이 아니다.
입력
첫 번째 줄에
다음
제약 조건
1 ≤ N ≤ 10^{18} 1 ≤ Q ≤ 10\,000 \textstyle \sum^Q_{q=1} k_q \le 10\,000 . 즉, 모든 질의에서 주어지는k 의 값을 더하면 최대10\,000 이다.모든
1 ≤ q ≤ Q 에 대해,1 ≤ i_q ≤ j_q ≤ (S_N 의 길이)
출력
각 질의에 대한 답을 질의가 주어진 순서대로 각각 한줄에 하나씩 출력한다.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 5점 | |
| #2 | 11점 | |
| #3 | 17점 | |
| #4 | 25점 | 모든 |
| #5 | 42점 | 추가 제약 조건 없음. |
예제
13 3
1 15 0
2 14 2
2 8 0
7
13
4