#P6979. [NEERC2015] Generators
[NEERC2015] Generators
题目描述
Little Roman is studying linear congruential generators -- one of the oldest and best known pseudorandom number generator algorithms. Linear congruential generator (LCG) starts with a non-negative integer number also known as seed and produces an infinite sequence of non-negative integer numbers which are given by the following recurrence relation:
mod
here a , , and are non-negative integer numbers and .
Roman is curious about relations between sequences generated by different LCGs. In particular, he has different LCGs with parameters and for , where the j-th LCG is generating a sequence He wants to pick one number from each of the sequences generated by each LCG so that the sum of the numbers is the maximum one, but is not divisible by the given integer number .
Formally, Roman wants to find integer numbers for to maximize to constraint that mod .
输入格式
The first line of the input file contains two integer numbers and The following lines describe LCGs. Each line contains four integer numbers and $c^{(j)} (0 \le a^{(j)}, b^{(j)} \le 1000 , 0 \le x_{0}^{(j)} < c^{(j)} \le 1000)$ .
输出格式
If Roman's problem has a solution, then write on the first line of the output file a single integer -- the maximum sum not divisible by , followed on the next line by integer numbers specifying some solution with this sum.
Otherwise, write to the output file a single line with the number .
题目大意
题目描述
罗曼在学习线性同余发生器——最古老,也是最广为人知的伪随机数生成算法之一。线性同余发生器(LCG)以 为随机种子,生成很多非负整数 ,它遵循以下规则:
给定非负整数 ,
罗曼很好奇由不同LCG产生的序列之间的关系。特别地,他有 个不同的LCG,含有参数 。第 个LCG会生成一个序列 。
他希望能从每个LCG产生的序列中挑出一个数,使他们的和最大,且不被给定的 整除。
格式化一点来说,他希望找到整数 ,使最大,且。
输入格式
第 行包括两个整数。
接下来 行描述LCG,每行包括4个整数: 。
输出格式
如果有解,第 行输出 ,第 行输出 个 。
。
如果无解,输出 。
说明/提示
时间限制:1秒
空间限制:256MB
2 3
1 1 1 6
2 4 0 5
8
4 1
2 2
0 7 2 8
2 5 0 6
-1
提示
Time limit: 1 s, Memory limit: 256 MB.