Somas Cíclicas Modulares
#153
Made by: Crazynds
256MB
0.3s
Dado um número inicial $X$, você deseja somá-lo a si mesmo repetidas vezes, sempre tomando o resultado módulo M após cada soma.
Mais formalmente:
Você começa com $S₀ = 0$. Depois, para cada $i$ de $1$ até $Y$, calcula-se:
$$ Sᵢ = (Sᵢ₋₁ + X) mod M $$
Note que, conforme as somas continuam, o valor de $Sᵢ$ pode começar a repetir — ou seja, um ciclo se forma.
Seu objetivo é determinar:
- O tamanho do ciclo (quantos valores distintos se repetem ciclicamente);
- O valor final $Sᵧ$ após realizar exatamente $Y$ somas.
Input
A primeira linha contém um inteiro $T$ representando o número de casos de testes. $(1 ≤ T ≤ 10^4)$
Cada caso de teste contém três inteiros:
X Y M
- $1 ≤ X ≤ 10^9$
- $1 ≤ Y ≤ 10^{18}$
- $2 ≤ M ≤ 10^{18}$
Output
Imprima para cada caso de teste dois valores separados por espaço:
tamCiclo S_Y
Onde:
tamCicloé o comprimento do ciclo,S_Yé o valor da soma em módulo após $Y$ operações.
Obs: É necessário calcular o tamanho do ciclo mesmo que $Y \lt tamCiclo$
Input Example
Output Example
10 8 72 10 10 50 10 9 68 6 10 21 25 6 84 24 1 43 20 8 1 11 5 18 7 1 28 5 6 23 13
5 6 1 0 2 0 5 10 4 0 20 3 11 8 7 6 5 3 13 8
10 10 49 4 5 63 4 2 6 23 3 44 7 2 97 12 7 44 27 9 78 24 7 89 9 1 3 8 6 87 26
2 2 4 3 23 12 7 6 6 2 27 11 8 6 9 2 8 3 13 2