freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-336-maximix-arrange...

3.4 KiB
Raw Blame History

id challengeType title forumTopicId localeTitle
5900f4bd1000cf542c50ffcf 5 Problem 336: Maximix Arrangements 301994 Задача 336: договоренности Максимикса

Description

Поезд используется для перевозки четырех вагонов в следующем порядке: ABCD. Однако иногда, когда поезд прибывает для сбора вагонов, они не в правильном порядке. Чтобы переставить вагоны, они все шунтируются на большой вращающийся поворотный стол. После того, как вагоны отсоединены в определенном месте, поезд сходит с поворотного стола, потянув за вагоны, все еще прикрепленные к нему. Остальные вагоны поворачиваются на 180 градусов. Затем все вагоны возвращаются, и этот процесс повторяется настолько часто, насколько это необходимо, чтобы получить наименьшее количество применений поворотного стола. Некоторые устройства, такие как ADCB, могут быть легко решены: каретки разделены между A и D, и после того, как DCB повернут, правильный порядок был достигнут.

Тем не менее, Simple Simon, водитель поезда, не известен своей эффективностью, поэтому он всегда решает проблему, изначально получая каретку A в нужном месте, затем каретку B и т. Д.

Используя четыре вагоны, самыми сильными мерами для Саймона, которые мы будем называть схемами максимикса, являются DACB и DBAC; каждый из которых требовал от него пяти поворотов (хотя, используя самый эффективный подход, их можно было решить с помощью всего трех поворотов). Процесс, который он использует для DACB, показан ниже.

Можно проверить, что существует 24 механизма максимизации для шести вагонов, из которых десятая лексикографическая схема максимизации - DFAECB.

Найдите 2011-й лексикографический принцип максимизации для одиннадцати вагонов.

Instructions

Tests

tests:
  - text: <code>euler336()</code> should return CAGBIHEFJDK.
    testString: assert.strictEqual(euler336(), CAGBIHEFJDK);

Challenge Seed

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

euler336();

Solution

// solution required