Files

63 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 5900f5371000cf542c51004a
title: 'Завдання 459: Гра "Перегорталка"'
challengeType: 5
forumTopicId: 302133
dashedName: problem-459-flipping-game
---
# --description--
У цій грі двоє гравців грають на $N$, користуючись $N$ квадратними панелями.
Кожен квадрат містить диск, що з однієї сторони чорний, а з іншої білий.
На початку гри всі диски перевернуті білою стороною.
Хід полягає в тому, щоб перевернути всі диски наступним чином:
- у верхньому правому кутку прямокутника повинен знаходитись білий диск
- ширина прямокутника - це квадратне число (1, 4, 9, 16, ...)
- висота прямокутника - трикутне число (1, 3, 6, 10, ...)
<img class="img-responsive center-block" alt="необхідно перевернути всі диски у прямокутнику 4х3 на дошці 5х5" src="https://cdn.freecodecamp.org/curriculum/project-euler/flipping-game-1.png" style="background-color: white; padding: 10px;" />
Гравці ходять по черзі. Гравець перемагає, перегорнувши диски на чорну сторону.
Нехай $W(N)$ буде кількістю виграшних ходів для першого гравця на дошці $N$ на $N$ з усіма білими дисками за умови бездоганної гри.
$W(1) = 1$, $W(2) = 0$, $W(5) = 8$ and $W({10}^2) = 31\\,395$.
За $N = 5$, вісьмома виграшними ходами гравця є:
<img class="img-responsive center-block" alt="перші вісім виграшних ходів для N = 5" src="https://cdn.freecodecamp.org/curriculum/project-euler/flipping-game-2.png" style="background-color: white; padding: 10px;" />
Знайдіть $W({10}^6)$.
# --hints--
`flippingGame()` має повернути `3996390106631`.
```js
assert.strictEqual(flippingGame(), 3996390106631);
```
# --seed--
## --seed-contents--
```js
function flippingGame() {
return true;
}
flippingGame();
```
# --solutions--
```js
// solution required
```