Files

1.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f4281000cf542c50ff39 Problema 186: Conectividade de uma rede 5 301822 problem-186-connectedness-of-a-network

--description--

Aqui estão os registros de um sistema de telefone bastante ativo com um milhão de usuários:

RecNr Caller Called
1 200007 100053
2 600183 500439
3 600863 701497
... ... ...

O número de telefone de quem ligou e o número de quem recebeu a chamada no registro n (RecNr) são Caller(n) = S_{2n - 1} (quem ligou) e Called(n) = S_{2n} (quem recebeu) em {S}_{1,2,3,\ldots} veio de um "Gerador Fibonacci com atraso":

Para 1 ≤ k ≤ 55, S_k = [100003 - 200003k + 300007{k}^3]\\;(\text{modulo}\\;1000000)

Para 56 ≤ k, S_k = [S_{k - 24} + S_{k - 55}]\\;(\text{modulo}\\;1000000)

Se Caller(n) = Called(n), diz-se que o usuário ligou errado e há uma falha na ligação; do contrário, a chamada foi um sucesso.

Desde o início dos registros, dizemos que qualquer par de usuários X e Y são amigos se X ligar para Y ou vice-versa. Do mesmo modo, X é um amigo de um amigo de Z se X é um amigo de Y e Y é um amigo de Z. O mesmo vale para cadeias maiores.

O número de telefone do primeiro ministro é 524287. Após quantas chamadas bem-sucedidas, sem contar as falsas, 99% dos usuários (incluindo o próprio primeiro ministro) serão amigos ou amigos de amigos do primeiro ministro?

--hints--

connectednessOfANetwork() deve retornar 2325629.

assert.strictEqual(connectednessOfANetwork(), 2325629);

--seed--

--seed-contents--

function connectednessOfANetwork() {

  return true;
}

connectednessOfANetwork();

--solutions--

// solution required