freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-260-stone-game.russ...

2.7 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4701000cf542c50ff83 5 Problem 260: Stone Game Задача 260: Каменная игра

Description

В игру играют три груды камней и два игрока. В свою очередь игрок удаляет один или несколько камней из свай. Однако, если она берет камни из более чем одной кучи, она должна удалить столько же камней из каждой из выбранных свай.

Другими словами, игрок выбирает некоторое N> 0 и удаляет: N камней из любой одной сваи; или N камней из каждой из двух свай (всего 2N); или N камней от каждой из трех свай (всего 3N). Игрок, принимающий последний камень (-ы), выигрывает игру.

Победившая конфигурация - это та, где первый игрок может заставить выиграть. Например, (0,0,13), (0,11,11) и (5,5,5) являются выигрышными конфигурациями, потому что первый игрок может сразу удалить все камни.

Потерянная конфигурация - это та, где второй игрок может заставить победу, независимо от того, что делает первый игрок. Например, (0,1,2) и (1,3,3) теряют конфигурации: любой юридический ход оставляет выигрышную конфигурацию для второго игрока.

Рассмотрим все потери конфигураций (xi, yi, zi), где xi ≤ yi ≤ zi ≤ 100. Мы можем проверить, что для них Σ (xi + yi + zi) = 173895.

Найдите Σ (xi + yi + zi), где (xi, yi, zi) пробегает потеряющие конфигурации с xi ≤ yi ≤ zi ≤ 1000.

Instructions

Tests

tests:
  - text: <code>euler260()</code> должен вернуть 167542057.
    testString: 'assert.strictEqual(euler260(), 167542057, "<code>euler260()</code> should return 167542057.");'

Challenge Seed

function euler260() {
  // Good luck!
  return true;
}

euler260();

Solution

// solution required