Files

58 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

---
id: 5900f4281000cf542c50ff39
title: 'Problema 186: Conectividade de uma rede'
challengeType: 5
forumTopicId: 301822
dashedName: 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`.
```js
assert.strictEqual(connectednessOfANetwork(), 2325629);
```
# --seed--
## --seed-contents--
```js
function connectednessOfANetwork() {
return true;
}
connectednessOfANetwork();
```
# --solutions--
```js
// solution required
```