2021-06-15 00:49:18 -07:00
---
id: 5900f4d91000cf542c50ffea
2021-11-23 11:06:14 -08:00
title: 'Problema 364: Distância confortável'
2021-06-15 00:49:18 -07:00
challengeType: 5
forumTopicId: 302025
dashedName: problem-364-comfortable-distance
---
# --description--
2021-11-23 11:06:14 -08:00
Existem $N$ assentos em uma fila. $N$ pessoas vêm atrás umas das outras para preencher os lugares de acordo com as seguintes regras:
2021-06-15 00:49:18 -07:00
2021-11-23 11:06:14 -08:00
1. Se houver algum lugar no qual os assentos adjacentes não estejam ocupados, tome esse lugar.
2. Se não existir esse lugar e se houver algum lugar para o qual apenas um lugar adjacente esteja ocupado, tome esse lugar.
3. Caso contrário, pegue um dos lugares restantes disponíveis.
2021-06-15 00:49:18 -07:00
2021-11-23 11:06:14 -08:00
Considere $T(N)$ como o número de possibilidades de que $N$ assentos estejam ocupados por $N$ pessoas com as regras dadas. A figura a seguir mostra $T(4) = 8$.
2021-06-15 00:49:18 -07:00
2021-11-23 11:06:14 -08:00
< img class = "img-responsive center-block" alt = "oito maneiras de N lugares serem ocupados por N pessoas" src = "https://cdn.freecodecamp.org/curriculum/project-euler/comfortable-distance.gif" style = "background-color: white; padding: 10px;" / >
2021-06-15 00:49:18 -07:00
2021-11-23 11:06:14 -08:00
Podemos verificar que $T(10) = 61.632$ e $T(1.000)\bmod 100.000.007 = 47.255.094$.
2021-06-15 00:49:18 -07:00
2021-11-23 11:06:14 -08:00
Encontre $T(1.000.000)\bmod 100.000.007$.
2021-06-15 00:49:18 -07:00
# --hints--
2021-11-23 11:06:14 -08:00
`comfortableDistance()` deve retornar `44855254` .
2021-06-15 00:49:18 -07:00
```js
2021-11-23 11:06:14 -08:00
assert.strictEqual(comfortableDistance(), 44855254);
2021-06-15 00:49:18 -07:00
```
# --seed--
## --seed-contents--
```js
2021-11-23 11:06:14 -08:00
function comfortableDistance() {
2021-06-15 00:49:18 -07:00
return true;
}
2021-11-23 11:06:14 -08:00
comfortableDistance();
2021-06-15 00:49:18 -07:00
```
# --solutions--
```js
// solution required
```