#ATarc149f. [ARC149F] Rational Number System

[ARC149F] Rational Number System

题目描述

r>1r > 1 为有理数,pprr 的分子,qqrr 的分母。即 p,qp, q 是正整数,满足 r=pqr = \frac{p}{q}gcd(p,q)=1\gcd(p, q) = 1

正整数 nnrr 进制展开 定义为满足以下所有条件的整数序列 (a1,,ak)(a_1, \ldots, a_k)

  • aia_i00p1p-1 之间的整数;
  • a10a_1 \neq 0
  • n=i=1kairkin = \sum_{i=1}^k a_i r^{k-i}

可以证明,任意正整数 nn 都有唯一的 rr 进制展开。


给定正整数 p,q,N,L,Rp, q, N, L, R,其中 p,qp, q 满足 1.01pq1.01 \leq \frac{p}{q}

将所有不超过 NN 的正整数,按其 pq\frac{p}{q} 进制展开的字典序从小到大排列,输出第 L,L+1,,RL, L+1, \ldots, R 个正整数。

注意,正整数的输入输出均使用通常的十进制表示。

什么是数列的字典序?
设数列 A=(A1,,AA)A = (A_1, \ldots, A_{|A|})B=(B1,,BB)B = (B_1, \ldots, B_{|B|}),若满足下列 1 或 2,则称 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|\},同时满足:
    • (A1,,Ai1)=(B1,,Bi1)(A_1, \ldots, A_{i-1}) = (B_1, \ldots, B_{i-1})
    • Ai<BiA_i < B_i

输入格式

输入通过标准输入给出,格式如下:

pp qq NN LL RR

输出格式

输出 RL+1R-L+1 行。第 ii 行输出所有不超过 NN 的正整数,按 pq\frac{p}{q} 进制展开的字典序从小到大排列时,第 L+i1L+i-1 个正整数。

输出正整数时请使用十进制表示。

样例 1

输入

3 1 9 1 9

输出

1
3
9
4
5
2
6
7
8

样例 2

输入

3 2 9 1 9

输出

1
2
3
4
6
9
7
8
5

样例 3

输入

3 2 9 3 8

输出

3
4
6
9
7
8

样例 4

输入

10 9 1000000000000000000 123456789123456789 123456789123456799

输出

806324968563249278
806324968563249279
725692471706924344
725692471706924345
725692471706924346
725692471706924347
725692471706924348
725692471706924349
653123224536231907
653123224536231908
653123224536231909

说明/提示

约束条件

  • 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

样例解释 1

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)。

样例解释 2

99 以下正整数的 32\frac{3}{2} 进制展开如下:

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\frac{3}{2} 进制展开为 (2,1,0)(2, 1, 0),因为 $2 \cdot \left(\frac{3}{2}\right)^2 + 1 \cdot \frac{3}{2} + 0 \cdot 1 = 6$。

样例解释 3

输入样例 2 的输出中,第 33 到第 88 个即为答案。

由 ChatGPT 4.1 翻译