问题1680--两个数 (twonum)

1680: 两个数 (twonum)

时间限制: 1 Sec  内存限制: 128 MB
提交: 7  解决: 1
[提交] [状态] [讨论版] [命题人:]

题目描述

现有两个人,若第一个人当前手中的数为 w1,则下一秒他手上的数将会变成
(x1 *w1 + y1)mod m;若第二个人当前手中的数为 w2,则下一秒他手上的数将会
变为(x2 *w2 + y2 )mod m(a mod b 表示 a 除以 b 的余数)。第 0 秒,两个人手上
的数分别为 h1,h2。请求出最快在第几秒,第一个人手上的数为 a1,且第二个
人手上的数为 a2。若不可能,则输出-1。

输入

第一行为一个正整数 T,表示数据组数。
每一组数据第一行为一个正整数 m,第二行包括两个整数 h1,a1,第三行包
括两个整数 x1 和 y1,第四行包括两个整数 h2 和 a2,第五行包括两个整数 x2
和 y2。

输出

对于每一组数据输出一行一个整数,如题所述答案。

样例输入

25
4 2
1 1
0 1
2 3
1023
1 2
1 0
1 2
1 1

样例输出

3
-1

提示

【数据范围】
对于 30%的数据, m <= 1000;
对于 100%的数据,T <= 5,h1 不等于 a1 且 h2 不等于 a2,
2 <=m<= 1 000 000,0 <= h1,a2,x1,y1,h2,a2,x2,y2 < m。

来源/分类

 

[提交] [状态]