61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
---
|
||
id: 5900f4701000cf542c50ff83
|
||
title: 'Завдання 260: Гра в камені'
|
||
challengeType: 5
|
||
forumTopicId: 301909
|
||
dashedName: problem-260-stone-game
|
||
---
|
||
|
||
# --description--
|
||
|
||
Гра ведеться з трьома купами каменів та двома гравцями.
|
||
|
||
На кожному ході гравець забирає один або кілька каменів з купи. Проте, якщо гравець бере камені з більше, ніж однієї купи, то таку саму кількість каменів необхідно забирати з кожної з вибраних.
|
||
|
||
Інакше кажучи, гравець обирає декілька $N > 0$ і забирає:
|
||
|
||
- $N$ камені з будь-якої купи; або
|
||
- $N$ камені з кожної з двох куп ($2N$ загалом); або
|
||
- $N$ камені з кожної з трьох куп ($3N$ загалом).
|
||
|
||
Гравець, який забирає останній камінь(-і), виграє гру.
|
||
|
||
Виграшна конфігурація - це така, де перший гравець може виграти.
|
||
|
||
Наприклад, (0,0,13), (0,11,11) і (5,5,5) є виграшними конфігураціями, оскільки перший гравець може одразу ж забрати всі камені.
|
||
|
||
Програшною є конфігурація, коли другий гравець може виграти, незалежно від того, що робить перший гравець.
|
||
|
||
Наприклад, (0,1,2) та (1,3,3) є програшними конфігураціями: будь-який можливий хід залишає виграшну конфігурацію для другого гравця.
|
||
|
||
Розглянемо усі програшні конфігурації ($x_i$,$y_i$,$z_i$), де $x_i ≤ z_i ≤ z_i ≤ 100$. Ми можемо перевірити, що $\sum (x_i + y_i + z_i) = 173\\,895$ для них.
|
||
|
||
Знайдіть $\sum (x_i + y_i + z_i)$, де ($x_i$,$y_i$,$z_i$) варіюється над програшними конфігураціями з $x_i ≤ y_i ≤ z_i ≤ 1000$.
|
||
|
||
# --hints--
|
||
|
||
`stoneGame()` має повернути `167542057`.
|
||
|
||
```js
|
||
assert.strictEqual(stoneGame(), 167542057);
|
||
```
|
||
|
||
# --seed--
|
||
|
||
## --seed-contents--
|
||
|
||
```js
|
||
function stoneGame() {
|
||
|
||
return true;
|
||
}
|
||
|
||
stoneGame();
|
||
```
|
||
|
||
# --solutions--
|
||
|
||
```js
|
||
// solution required
|
||
```
|