freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-149-searching-for-a...

2.5 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4021000cf542c50ff13 5 Problem 149: Searching for a maximum-sum subsequence Задача 149: Поиск подпоследовательности максимальной суммы

Description

Посмотрев таблицу ниже, легко убедиться, что максимально возможная сумма смежных чисел в любом направлении (горизонтальная, вертикальная, диагональная или антидиагональная) равна 16 (= 8 + 7 + 1).

-25329-6513273-18-4 8

Теперь повторим поиск, но в гораздо большем масштабе:

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

Для 1 ≤ k ≤ 55, sk = [100003 - 200003k + 300007k3] (по модулю 1000000) - 500000. Для 56 ≤ k ≤ 4000000, sk = [sk-24 + sk-55 + 1000000] (по модулю 1000000) - 500000.

Таким образом, s10 = -393027 и s100 = 86613.

Затем термины s располагаются в таблице 2000 × 2000, используя первые 2000 номеров для заполнения первой строки (последовательно), следующих номеров 2000 для заполнения второй строки и т. Д.

Наконец, найдите наибольшую сумму (любое число) смежных записей в любом направлении (горизонтальное, вертикальное, диагональное или антидиагональное).

Instructions

Tests

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

Challenge Seed

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

euler149();

Solution

// solution required