atcoder#ARC123F. [ARC123F] Insert Addition

[ARC123F] Insert Addition

配点 : 10001000

問題文

整数列 P=(P1,,PM)P = (P_1, \ldots, P_M) に対して、各 1iM11\leq i\leq M-1 に対して PiP_iPi+1P_{i+1} の間に Pi+Pi+1P_i + P_{i+1} を挿入することで得られる数列を f(P)f(P) と書くことにします。より形式的には次の通りです:

  • 1iM11\leq i\leq M - 1 に対して Qi=Pi+Pi+1Q_i = P_i + P_{i+1} とする。
  • 2M12M-1 項からなる数列 f(P)f(P) を $f(P) = (P_1, Q_1, P_2, Q_2, \ldots, P_{M-1}, Q_{M-1}, P_M)$ により定める。

正の整数 a,b,Na, b, N(ただし a,bNa, b\leq N)が与えられます。数列 A=(a,b)A = (a, b) から始めて、以下の手順によって数列 B=(B1,B2,)B = (B_1, B_2, \ldots) を定めます。

  • AAf(A)f(A) に取り換えることを、NN 回繰り返す。
  • その後、数列 AA から NN より大きな値を取り除いてできる数列を、数列 BB とする。

BL,,BRB_L, \ldots, B_R を求めてください。

制約

  • 1N3×1051\leq N\leq 3\times 10^5
  • 1a,bN1\leq a, b\leq N
  • 1LR10181\leq L\leq R\leq 10^{18}
  • RL<3×105R - L < 3\times 10^5
  • RR は数列 BB の項数以下である

入力

入力は以下の形式で標準入力から与えられます。

aa bb NN

LL RR

出力

BL,,BRB_L, \ldots, B_R を空白区切りで 11 行で出力してください。

1 1 4
1 7
1 4 3 2 3 4 1

はじめ A=(1,1)A = (1, 1) です。AAf(A)f(A) を取り換える操作により、数列 AA は以下のように変化します:

  • 11 回目の操作:A=(1,2,1)A = (1, 2, 1)
  • 22 回目の操作:A=(1,3,2,3,1)A = (1, 3, 2, 3, 1)
  • 33 回目の操作:A=(1,4,3,5,2,5,3,4,1)A = (1, 4, 3, 5, 2, 5, 3, 4, 1)
  • 44 回目の操作:$A = (1, 5, 4, 7, 3, 8, 5, 7, 2, 7, 5, 8, 3, 7, 4, 5, 1)$

したがって B=(1,4,3,2,3,4,1)B = (1, 4, 3, 2, 3, 4, 1) となります。この数列の第 11 項目から第 77 項目までが答えとなります。

1 1 4
2 5
4 3 2 3

この入力例でも、B=(1,4,3,2,3,4,1)B = (1, 4, 3, 2, 3, 4, 1) となります。この数列の第 22 項目から第 55 項目までが答えとなります。

2 1 10
5 15
8 3 10 7 4 9 5 6 7 8 9
10 10 10
2 2
10