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