F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

Random Number Generator

Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 163    Accepted Submission(s): 5
Special Judge


Problem Description
  A random number generator (RNG) is a computational or physical device designed to generate a sequence of numbers or symbols that lack any pattern, i.e. appear random. Many of these have existed since ancient time, including dices, coin flipping, the shuffling of playing cards, and many other techniques. These methods depend on the measurement of some physical phenomenon which is expected to be random, and are still widely used today. On the other hand, deterministic computational algorithms were introduced into random number generation. Despite such algorithms' ability to produce apparently random results, they are in fact determined by a shorter initial value, known as a seed or key. These algorithms are often called pseudorandom number generators. They can also be called RNG customarily, but actually differ with real RNG significantly.
  Now considering a simple RNG, whose algorithm has two positive integer parameters A, B and a prime parameter M (2 ≤ A, B < M ≤ 1018). To run the algorithm, a seed X0 (0 ≤ X0 < M) is required, and the algorithm produces a integer sequence Xn satisfying the condition Xn = (A × Xn - 1 + B) mod M for any positive integer n.
  An application implemented this algorithm. This application has another two parameters S (S ≤ M) and K (K ≤ 105), and will use this RNG in such a way. Firstly, the application generates the first K integers in the random sequence including the seed, and these numbers modulo S are stored in another number sequence D, i.e. Di = Xi mod S for any integer i in [0, K - 1]. Then, another random integer XK is produced, and the application chooses the ((XK mod K) + 1)-th number in sequence D, i.e. DXk mod K as its output C. If an output C (0 ≤ C < S) is observed in a certain run, and parameters A, B, M, S, K is known, your task is determining a possible X0 which leads to the output C.
 

Input
  There are at most 200 test cases. Each test case is a single line containing six integers, A, B, M, S, K and C, seperated by space. The meaning of these numbers are described above.
  The input is ended by 0 0 0 0 0 0
 

Output
  You should output an integer for each test case, indicating a possible X0. If there is no solution, print "impossible" instead. This problem is special judged.
 

Sample Input
2 2 97 5 3 2 2 2 97 5 3 3 0 0 0 0 0 0
 

Sample Output
2 8
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-03-29 22:41:59, Gzip enabled