4.3 KiB
id | challengeType | title | videoUrl | localeTitle |
---|---|---|---|---|
5900f4b31000cf542c50ffc6 | 5 | Problem 327: Rooms of Doom |
Description
Каждая дверь управляется картой безопасности. Когда вы входите в комнату, дверь автоматически закрывается и эта карта безопасности не может быть использована снова. Машина с самого начала будет раздавать неограниченное количество карт, но каждая комната (включая стартовую) содержит сканеры, и если они обнаруживают, что у вас есть более трех карт безопасности или если они обнаруживают на полу автоматическую карту безопасности, все двери будут постоянно заперты. Тем не менее, каждая комната содержит коробку, в которой вы можете безопасно хранить любое количество карт безопасности для использования на более позднем этапе.
Если вы просто попытались проехать по комнатам по одному, а затем, когда вы вошли в комнату 3, вы бы использовали все три карты и были бы в ловушке в этой комнате навсегда!
Тем не менее, если вы используете ящики для хранения, то возможен выход. Например, вы можете войти в комнату 1 с помощью своей первой карты, поместить одну карту в ящик для хранения и использовать свою третью карту, чтобы выйти из комнаты до начала. Затем, собрав еще три карты из раздаточной машины, вы можете использовать ее для входа в комнату 1 и собрать карту, которую вы разместили в коробке минуту назад. Теперь у вас есть еще три карты и вы сможете проехать через оставшиеся три двери. Этот метод позволяет путешествовать по всем трем комнатам, используя в общей сложности шесть карт безопасности.
Можно путешествовать по шести комнатам, используя в общей сложности 123 карты безопасности, имея максимум 3 карты.
Пусть C - максимальное количество карточек, которые можно переносить в любое время. Пусть R - количество комнат для проезда. Пусть M (C, R) - минимальное количество карточек, требуемых от раздаточной машины, для перемещения по номерам R, несущим до максимума карты C в любое время.
Например, M (3,6) = 123 и M (4,6) = 23.And, ΣM (C, 6) = 146 для 3 ≤ C ≤ 4.
Вам дается, что ΣM (C, 10) = 10382 для 3 ≤ C ≤ 10.
Найти ΣM (C, 30) для 3 ≤ C ≤ 40.
Instructions
Tests
tests:
- text: <code>euler327()</code> должен вернуть 34315549139516.
testString: 'assert.strictEqual(euler327(), 34315549139516, "<code>euler327()</code> should return 34315549139516.");'
Challenge Seed
function euler327() {
// Good luck!
return true;
}
euler327();
Solution
// solution required