#P9328. [CCC 2023 S5] The Filter

[CCC 2023 S5] The Filter

Description

数学家 Alice 喜欢研究介于 0011 之间的实数。她最喜欢的工具是滤器。

滤器覆盖数轴的一部分。当一个数字到达滤器时,会发生两种情况。如果一个数字没有被滤器覆盖,则该数字将通过。如果一个数字被覆盖,则该数字将被移除。

Alice 有无数个滤器。她的前三个滤器如下所示:

一般来说,第 kk 个滤器可以定义如下:

  • 考虑从 0011 的数轴。

  • 将这个数轴分成 3k3^k 个等大小的部分。有 3k+13^k + 1 个点和 3k3^k 个区间。

  • kk 个滤器由第 22 个区间、第 55 个区间、第 88 个区间组成,一般来说,是第 (3i1)(3i-1) 个区间。这些点是第 kk 个滤器的一部分。

Alice 有构造 Cantor 集合的说明。首先从 0011 的数轴开始。对数轴应用所有滤器,并移除被覆盖的数字。剩下的数字形成 Cantor 集合。

Alice 想研究 Cantor 集合,她来找你帮忙。给定一个整数 NN,Alice 想知道哪些分数 xN\frac{x}{N} 在 Cantor 集合中。

Input Format

第一行包含整数 NN

下表显示了可用的 1515 分的分布情况。

分数 NN 的范围 额外约束
33 3N3183 \leq N \leq 3^{18} NN33 的幂。
44 2N2×1052 \leq N \leq 2 \times 10^5 无。
88 2N2×1092 \leq N \leq 2 \times 10^9

Output Format

输出所有整数 xx,其中 0xN0 \leq x \leq NxN\frac{x}{N} 在 Cantor 集合中。

按递增顺序输出答案。答案的数量不会超过 10610^6

12
0
1
3
4
8
9
11
12

Hint

512,612,712\frac{5}{12},\frac{6}{12},\frac{7}{12} 不在 Cantor 集合中,因为它们被第一个滤器覆盖。此外,212\frac{2}{12}1012\frac{10}{12} 不在 Cantor 集合中,因为它们被第二个滤器覆盖。

可以证明,剩下的分数将通过所有滤器。

本题采用捆绑测试

  • 子任务 1(3 分):3N3183 \leq N \leq 3 ^{18}NN33 的整数次幂。

  • 子任务 2(4 分):2N2×1052 \leq N \leq 2\times 10^5

  • 子任务 3(8 分):2N2×1092 \leq N \leq 2 \times 10^9

题面翻译由 ChatGPT-4o 提供。