#P2381. Random Gap

    ID: 1382 传统题 1000ms 256MiB 尝试: 6 已通过: 1 难度: 10 上传者: 标签>模拟Northeastern Europe 2004Far-Eastern Subregion

Random Gap

题目描述

伪随机数生成器(简称 RNG)在统计计算中被广泛使用。最简单且常见的一种是线性同余 RNG,它按照公式 Rn = (aRn - 1 + c) mod m 来计算第 (n) 个随机数 (R_n),其中 (a)、(c) 和 (m) 是常量。例如,当 (a = 15),(c = 7),(m = 100) 且起始值 (R_0 = 1) 时,生成的序列为 1, 22, 37, 62, 37, 62, ...

线性 RNG 速度非常快,并且在选择合适的常量时,能够生成令人惊讶的优质随机数序列。有多种衡量 RNG 质量的方法,而你的任务是计算其中一种,即序列中元素之间的最大间隔。更准确地说,给定 (a)、(c)、(m) 和 (R_0) 的值,找出两个元素 (R_i < R_j),使得:

不存在其他的 (R_k) 满足 (R_i≤ R_k≤ R_j); 差值 (R_j - R_i) 最大。

输入

输入包含整数 (a)、(c)、(m) 和 (R_0)。

0 ≤ a, c, R0 ≤ 107, 1 ≤ m ≤ 16000000, am + c < 232

输出

输出应包含一个数字,即找到的最大差值。

15 7 100 1
25

来源

2004 年东北欧,远东分区赛