atcoder#ARC149F. [ARC149F] Rational Number System

[ARC149F] Rational Number System

配点 : 900900

問題文

r>1r > 1 を有理数とし,pprr の分子,qqrr の分母とします.つまり p,qp, q は正整数で r=pqr = \frac{p}{q} かつ gcd(p,q)=1\gcd(p,q) = 1 が成り立つとします.

正整数 nn\boldsymbol{r} 進法展開 を,次の条件をすべて満たす整数列 (a1,,ak)(a_1, \ldots, a_k) のことと定義します.

  • aia_i00 以上 p1p-1 以下の整数
  • a10a_1\neq 0
  • n=i=1kairkin = \sum_{i=1}^k a_ir^{k-i}

任意の正整数 nn が唯一の rr 進法展開を持つことが証明できます.


正整数 p,q,N,L,Rp, q, N, L, R が与えられます.ここで,p,qp, q1.01pq1.01 \leq \frac{p}{q} を満たします.

NN 以下の正整数全体を,pq\frac{p}{q} 進法展開の辞書順が小さい方から順に並べたとき,L,L+1,,RL, L+1, \ldots, R 番目に並ぶ正整数を答えてください.

なお,正整数の入出力には通常の 1010 進法表記が用いられます.

数列の辞書順とは?

数列 A=(A1,,AA)A = (A_1, \ldots, A_{|A|})B=(B1,,BB)B = (B_1, \ldots, B_{|B|}) より辞書順で小さいとは,下記の 1. と 2. のどちらかが成り立つことを言います.ここで,A|A|, B|B| はそれぞれ AA, BB の長さを表します.

  1. A<B|A|<|B| かつ (A1,,AA)=(B1,,BA)(A_{1},\ldots,A_{|A|}) = (B_1,\ldots,B_{|A|}).
  2. ある整数 1imin{A,B}1\leq i\leq \min\{|A|,|B|\} が存在して,下記の 22 つがともに成り立つ.
    • (A1,,Ai1)=(B1,,Bi1)(A_{1},\ldots,A_{i-1}) = (B_1,\ldots,B_{i-1}).
    • Ai<BiA_i < B_i.

制約

  • 1p,q1091\leq p, q \leq 10^9
  • gcd(p,q)=1\gcd(p,q) = 1
  • 1.01pq1.01 \leq \frac{p}{q}
  • 1N10181\leq N\leq 10^{18}
  • 1LRN1\leq L\leq R\leq N
  • RL+13×105R - L + 1\leq 3\times 10^5

入力

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

pp qq NN LL RR

出力

RL+1R-L+1 行出力してください.ii 行目には,NN 以下の正整数全体を,pq\frac{p}{q} 進法展開の辞書順が小さい方から順に並べたとき,L+i1L + i - 1 番目に並ぶ正整数を出力してください.

正整数の出力には 1010 進法表記を用いてください.

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

99 以下の正整数の 33 進法展開は次の通りです.

1: (1),        2: (2),        3: (1, 0),
4: (1, 1),     5: (1, 2),     6: (2, 0),
7: (2, 1),     8: (2, 2),     9: (1, 0, 0).
3 2 9 1 9
1
2
3
4
6
9
7
8
5

99 以下の正整数の 32\frac32 進法展開は次の通りです.

1: (1),        2: (2),        3: (2, 0),     
4: (2, 1),     5: (2, 2),     6: (2, 1, 0),  
7: (2, 1, 1),  8: (2, 1, 2),  9: (2, 1, 0, 0).

例えば 6632\frac32 進法展開が (2,1,0)(2,1,0) であることは,$2\cdot \bigl(\frac32\bigr)^2 + 1\cdot \frac32 + 0\cdot 1 = 6$ から分かります.

3 2 9 3 8
3
4
6
9
7
8

入力例 2 の出力のうち 33 番目から 88 番目が答となります.

10 9 1000000000000000000 123456789123456789 123456789123456799
806324968563249278
806324968563249279
725692471706924344
725692471706924345
725692471706924346
725692471706924347
725692471706924348
725692471706924349
653123224536231907
653123224536231908
653123224536231909