#arc135a. [arc135_a]Floor, Ceil - Decomposition

[arc135_a]Floor, Ceil - Decomposition

题目描述

黑板上写着一个整数 XX。你可以任意次数(包括零次)地进行以下操作。

  • 选择黑板上的一个整数 xx
  • 擦掉一个 xx,并写下两个新的整数 lfloorfracx2rfloor\\lfloor \\frac{x}{2}\\rfloorlceilfracx2rceil\\lceil \\frac{x}{2}\\rceil

在进行操作后,求黑板上整数的乘积的最大可能值,对 998244353998244353 取模。

下面是 x/2\lfloor x/2\rfloorlceilx/2rceil\\lceil x/2\\rceil 的解释。

对于实数 xxx\lfloor x\rfloor 表示不大于 xx 的最大整数,而 lceilxrceil\\lceil x\\rceil 表示不小于 xx 的最小整数。例如,以下内容成立。

  • 对于 x=2x = 2,我们有 fracx2rfloor=1\lfloor \\frac{x}{2}\\rfloor = 1lceilfracx2rceil=1\\lceil \\frac{x}{2}\\rceil = 1
  • 对于 x=3x = 3,我们有 fracx2rfloor=1\lfloor \\frac{x}{2}\\rfloor = 1lceilfracx2rceil=2\\lceil \\frac{x}{2}\\rceil = 2

约束条件

  • 1leqXleq10181\\leq X \\leq 10^{18}

输入

从标准输入给出以下格式的输入:

XX

输出

打印操作后黑板上整数的乘积的最大可能值,对 998244353998244353 取模。

示例输入 1

15

示例输出 1

192

以下是一系列操作使得黑板上整数的乘积为 192192

  • 黑板的初始状态是 (15)(15)
  • 使用 x=15x = 15 进行一次操作,将黑板变为 (7,8)(7, 8)
  • 使用 x=7x = 7 进行一次操作,将黑板变为 (8,3,4)(8, 3, 4)
  • 使用 x=4x = 4 进行一次操作,将黑板变为 (8,3,2,2)(8, 3, 2, 2)
  • 使用 x=8x = 8 进行一次操作,将黑板变为 (3,2,2,4,4)(3, 2, 2, 4, 4)

在这里,黑板上整数的乘积为 3times2times2times4times4=1923\\times 2\\times 2\\times 4\\times 4 = 192

示例输入 2

3

示例输出 2

3

不进行任何操作时,黑板上整数的乘积为 33

示例输入 3

100

示例输出 3

824552442

进行操作后,黑板上整数的最大可能乘积是 58564588684700165856458868470016,需要对 998244353998244353 取模。