配点 : 900 点
問題文
r>1 を有理数とし,p を r の分子,q を r の分母とします.つまり p,q は正整数で r=qp かつ gcd(p,q)=1 が成り立つとします.
正整数 n の \boldsymbol{r} 進法展開 を,次の条件をすべて満たす整数列 (a1,…,ak) のことと定義します.
- ai は 0 以上 p−1 以下の整数
- a1=0
- n=∑i=1kairk−i
任意の正整数 n が唯一の r 進法展開を持つことが証明できます.
正整数 p,q,N,L,R が与えられます.ここで,p,q は 1.01≤qp を満たします.
N 以下の正整数全体を,qp 進法展開の辞書順が小さい方から順に並べたとき,L,L+1,…,R 番目に並ぶ正整数を答えてください.
なお,正整数の入出力には通常の 10 進法表記が用いられます.
数列の辞書順とは?
数列 A=(A1,…,A∣A∣) が B=(B1,…,B∣B∣) より辞書順で小さいとは,下記の 1. と 2. のどちらかが成り立つことを言います.ここで,∣A∣, ∣B∣ はそれぞれ A, B の長さを表します.
- ∣A∣<∣B∣ かつ (A1,…,A∣A∣)=(B1,…,B∣A∣).
- ある整数 1≤i≤min{∣A∣,∣B∣} が存在して,下記の 2 つがともに成り立つ.
- (A1,…,Ai−1)=(B1,…,Bi−1).
- Ai<Bi.
制約
- 1≤p,q≤109
- gcd(p,q)=1
- 1.01≤qp
- 1≤N≤1018
- 1≤L≤R≤N
- R−L+1≤3×105
入力
入力は以下の形式で標準入力から与えられます.
p q N L R
出力
R−L+1 行出力してください.i 行目には,N 以下の正整数全体を,qp 進法展開の辞書順が小さい方から順に並べたとき,L+i−1 番目に並ぶ正整数を出力してください.
正整数の出力には 10 進法表記を用いてください.
9 以下の正整数の 3 進法展開は次の通りです.
9 以下の正整数の 23 進法展開は次の通りです.
例えば 6 の 23 進法展開が (2,1,0) であることは,2⋅(23)2+1⋅23+0⋅1=6 から分かります.
入力例 2 の出力のうち 3 番目から 8 番目が答となります.