Если вам подойдёт одним циклом:
arr = {
~~-9 : { 10: 0, 5: 0, 2: 0 } , -8 : { 10: 0, 5: 0, 2: 0 } ,
~~-7 : { 10: 0, 5: 0, 2: 0 } , -6 : { 10: 0, 5: 0, 2: 0 } ,
~~-5 : { 10: 0, 5: 0, 2: 0 } , -4 : { 10: 0, 5: 0, 2: 0 } ,
~~-3 : { 10: 0, 5: 0, 2: 0 } , -2 : { 10: 0, 5: 0, 2: 0 } ,
~~-1 : { 10: 0, 5: 0, 2: 0 } , 0 : { 10: 0, 5: 0, 2: 0 } }
n = int(input())
for i in range(1, n + 1):
~~arr[i] = {
10 : (i >= 10) + arr[i - 10][10] + arr[i - 10][5] + arr[i - 10][2],
5: (i >= 5) + arr[i - 5][5] + arr[i - 5][2],
2: (i >= 2) + arr[i - 2][2]
~~ }
print(arr[n][10] + arr[n][5] + arr[n][2] + 1)
Возможно есть ошибка.
Объяснение:
После того как снизу (у меня снизу, у тебя может и сверху выход) нет стены, робот не двигается, ему нет команды двигаться, а цикл начинается сначала - снова проверка есть ли стена сверху и снизу, снизу нет стены, робот не двигается, цикл начинается сначала. опять проверка...опять не двигается и снова цикл. Если нет стены сверху или снизу, нужно предусмотреть выход из цикла и конец, ну либо что робот должен делать после того как нашел разрыв.
использовать Робот
алг Найти проход в коридоре
дано | Робот узком горизонтальном коридоре, правее робота есть выход
надо | Робот в клетке с выходом из коридора
нач
нц если сверху стена и снизу стена то
вправо
иначе стоп
все
кц
кон