Где ошибка в моем решении? Задача Яндекс

Всем привет! Начинаю учить python, решаю задачу из Яндекса, выполняю в PyCharm - все работает, отправляю на проверку - получаю 0 баллов. Заранее простите за код.

На витрине магазина в один ряд выложены сладости с различными названиями, занумерованные с единицы слева-направо. Мимо витрины часто проходят дети и просят родителей купить им все сладости начиная с номера li и заканчивая номером ri. Директор магазина хочет составить отчет, в котором будут указаны названия всех купленных сладостей в том порядке, как их покупали. Сначала в списке должны быть перечислены сладости, купленные первому ребенку, затем второму и так далее. Для каждого ребенка сначала покупается сладость с номером li, затем li + 1 и так далее до номера ri. Формат ввода Первая строка ввода содержит целое число n — число различных типов сладостей (1 ≤ n ≤ 1000). Следующие n строк названия сладостей, состоящие из строчных и прописных латинских букв, цифр и символов «_» и «.». Названия не превышают 100 символов. Следующая строка содержит m — число покупок (1 ≤ m ≤ 1000). Следующие m строк содержат по два целых числа li и ri — номер первой и последней сладости, купленной i-му ребенку (1 ≤ li ≤ ri ≤ n).

Формат вывода: Выведите список сладостей в отчете директора.

def get_number(list):
    i = 0
    for element in list:
        i = i + 1
    return i

def create_number_elements_in_list(list):
    new = []
    i = 0
    for element in list:
        new.append(i)
        i += 1
    return new

sladosti = []
n = int(input())

while n > get_number(sladosti):
    sladosti.append(input())
    get_number(sladosti)

while True:
    bought = int(input())
    if bought > 1 or bought < 1000:
        break
    else:
        continue

pokupki = []
i = 0
pod_i = 0

while bought != 0:
    new_pokupka = [int(input()), int(input())]
    pokupki.append(new_pokupka)
    i = i + 1
    bought -= 1

index = 0
for spisok in pokupki:
    spisok = pokupki[index]
    under_indx = 0
    for element in spisok:
        element = spisok[under_indx]
        element -= 1
        spisok[under_indx] = element
        under_indx += 1
    pokupki[index] = spisok
    index += 1

new_list = create_number_elements_in_list(sladosti)
index = 0
while get_number(pokupki) > index:         # цикл работы пока не переберутся все списки
    for spisok in pokupki:                  # перебираем списки внутри списка
        spisok = pokupki[index]             # присваиваем переменной список по порядку
        under_indx = 0                      # индекс для работы с елементами под списка
        for element in spisok:              # перебираем элементы списка
            ux_indx = 0
            element = spisok[under_indx]    # присваиваем переменной значение элемента списка
            for parts in new_list:          # перебираем элементы списка (представляющего собой порядковые номера конфет)
                parts = new_list[ux_indx]   # присваиваем переменной значение порядкового номера конфеты
                if parts == element:        # проверяем является ли купленый элемент 1, затем 2, затем 3 элементом списка
                    print(sladosti[parts])
                    ux_indx += 1
                else:
                    ux_indx += 1
                    continue
            under_indx += 1
        index += 1

Ответы (1 шт):

Автор решения: Алексей Р

Собираем сладости в список и потом по номерам выводим в консоль. Результат для данного примера как в Информационные технологии / IT 10-11 классы / 10th and 11th Grades A. Сладости / Task A. Candy

# имитация ввода данных
inp = """3
Chocolate
Lollipop
Cake
2
2 3
1 2""".split('\n')

def input():
    if inp: return inp.pop(0)
# конец имитации ввода данных

lst = [input() for _ in range(int(input()))]
for i in range(int(input())):
    li, ri = map(int, input().split())
    for p in range(li, ri + 1):
        print(lst[p - 1])
Lollipop
Cake
Chocolate
Lollipop
→ Ссылка