freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-344-silver-dollar-g...

2.8 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4c51000cf542c50ffd7 5 Problem 344: Silver dollar game

Description

Один вариант игры серебряного доллара NG de Bruijn можно описать следующим образом:

На полосе квадратов размещено несколько монет, не более одной монеты на квадрат. Только одна монета, называемая серебряным долларом, имеет какую-то ценность. Два игрока по очереди делают ходы. При каждом повороте игрок должен сделать либо обычный, либо специальный ход.

Регулярный ход состоит в выборе одной монеты и перемещении ее на один или несколько квадратов влево. Монета не может выходить из полосы или прыгать на другую монету или над ней.

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

Победителем является игрок, который забивает серебряный доллар.

Выигрывающая конфигурация - это расположение монет на полосе, где первый игрок может заставить выигрыш независимо от того, что делает второй игрок.

Пусть W (n, c) - количество выигрышных конфигураций для полосы из n квадратов, c бесполезных монет и одного серебряного доллара.

Вам дается, что W (10,2) = 324 и W (100,10) = 1514704946113500.

Найдите W (1 000 000, 100) по модулю полупроэкта 1000 036 000 099 (= 1 000 003 · 1 000 033).

Instructions

undefined

Tests

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

Challenge Seed

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

euler344();

Solution

// solution required