Ctrl K

Суммы соседей по кругу

Лёгкая
За круглым столом сидят игроки, у каждого карточка с числом; числа записаны по часовой стрелке в массив ring, так что за последним игроком снова идёт первый. Ведущий называет число span, и все одновременно меняют свои карточки: - если span > 0, игрок пишет сумму чисел span следующих за ним игроков по часовой стрелке; - если span < 0, — сумму чисел |span| игроков перед ним; - если span = 0, — пишет 0. Все считают по старым числам. Верните новые числа в том же порядке.
Пример 1
ring=[3, 1, 4, 2], span=2 → [5, 6, 5, 4]

Каждое число заменяется суммой двух следующих по кругу: [1+4, 4+2, 2+3, 3+1] = [5, 6, 5, 4].

Пример 2
ring=[3, 1, 4, 2], span=-1 → [2, 3, 1, 4]

Берётся одно предыдущее число; для первого элемента предыдущим считается последний.

Пример 3
ring=[6, 9], span=0 → [0, 0]

При span = 0 все числа превращаются в нули.

Ограничения
  • 1 ≤ len(ring) ≤ 100
  • 1 ≤ ring[i] ≤ 100
  • -(len(ring) - 1) ≤ span ≤ len(ring) - 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПовтор в пределах окна ЛёгкаяСоседние значения ЛёгкаяЛучшее окно по среднему ЛёгкаяОчки за шаги ЛёгкаяСамая ровная группа по баллам Лёгкая
загружаем Python…
Вход
ring=[3, 1, 4, 2], span=2
Ожидается
[5, 6, 5, 4]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 103 теста на сервере, включая скрытые.