Весенние старты 2026 з3

г. Иркутск

Конкурс юных программистов «Весенние старты» 2026
Номинация "Решение программистских задач"
Автор заданий Г.Б. Рейнгольд

Задача C. Кубики-2 (20 баллов)

В этой задаче используется строение из кубиков, как в задаче C (см. рисунок).

Задаётся общее количество кубиков, которые ушли на постройку и номер этажа.

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

Пример:

Вход – 84 7

Выход – 7

Формат входных данных: строка, в которой два целых положительных числа. Первое <=985746601 (количество кубиков в постройке), второе <=22201 (номер этажа).

Формат выходных данных: одно целое число (количество кубиков в заданном этаже).

Лимит времени на прохождение одного теста – 1 секунда.

Авторское решение (Python)

# Весенние старты 2026
# Задача C "Кубики-2"
# Автор Г.Б. Рейнгольд
# Авторское решение
#
# Для решения этой задачи нужно разобраться
# с задачей D "Кубики-1".
# Также понадобятся навыки работы с массивами, хотя можно оойтись и без них.

nn, ne =  map(int, input().split()) # Ввод данных количество кубиков в  постройке
                # и номер этажа
ke = 1 # Количество этажей
k = 1 # Количество кубиков в стороне квадрата этажа
nnn = 1 # Общее количество кубиков, необходимых для постройки
ske = [1] # В этом списке количества кубиков в этажах (нумерация наоборот)
while nnn < nn: # Главный цикл
    k += 2
    nnn += k ** 3
    ke += k
    i = 1
    while i <= k:
        ske.append(k**2) # Добавка сразу k этажей,
                # количество кубиков в этаже равно квадрату стороны.
        i += 1
       
n = len(ske) # Количество этажей
nkke = n - ne # индекс в массиве с учётом его перевёрнутости
print(ske[nkke])
       


Рецензии
Очень полезно для ума:—))с уважением. удачи в творчестве.

Александр Михельман   06.05.2026 16:48     Заявить о нарушении