#P1597. Uniform Generator

Uniform Generator

题目描述

计算机模拟通常需要随机数。生成伪随机数的一种方法是使用以下形式的函数:
seed(x+1) = [ seed(x) + STEP ] % MOD

其中“%”是取模运算符。该函数生成介于 0 和 MOD-1 之间的伪随机数。此类函数的一个问题是它们会反复生成相同的模式。为了最小化这种影响,仔细选择 STEP 和 MOD 的值可以使所有值(包括 0 和 MOD-1)均匀分布。

示例分析

  • 当 STEP=3、MOD=5 时,生成的序列为 0, 3, 1, 4, 2,每个 MOD 次迭代会生成所有可能的值,属于“Good Choice”。
  • 当 STEP=15、MOD=20 时,生成的序列为 0, 15, 10, 5(或其他重复序列),无法覆盖所有值,属于“Bad Choice”。

任务:给定 STEP 和 MOD,判断该函数是否能在 MOD 次迭代内生成 0 到 MOD-1 的所有值。若是,输出“Good Choice”,否则输出“Bad Choice”。

输入格式

每行包含两个整数 STEP 和 MOD(1 ≤ STEP, MOD ≤ 100000)。

输出格式

对于每行输入,按以下格式输出:

  • STEP 右对齐,占 1-10 列;
  • MOD 右对齐,占 11-20 列;
  • 判断结果左对齐,从第 25 列开始,取值为“Good Choice”或“Bad Choice”。
    每个输出后需换行。

输入输出示例

输入数据 1

3 5  
15 20  
63923 99999  

输出数据 1

         3         5    Good Choice  

        15        20    Bad Choice  

     63923     99999    Good Choice