0
0 комментариев

Решаю одну задачку по информатике, выходит ошибка о том, что список выходит за пределы, смысл ошибки я понимаю, но вот почему она происходит — нет. Вроде уже проверял, не понимаю как такое может быть… Python 3.8.0 Windows 10.

[apcode language=»python»]

m, n, k = map(int, input().split()) 
chislo_okon = list(map(int, input().split()))
i = 0
i2 = int(0)
i3 = 0
warning = 0
kv = ""
a = 0
chek = 0
kolvo = 0
while i < n:										#Пока не кончатся этажи
 svet = list(map(int, input().split()))						#Вводим данные о свете в квартирах
 while i2 < k:									#Пока проверяемое окно не последнее
  while chek != chislo_okon[a]:						#Пока квартира не занята 
   if svet[i2] == 0:						#Если свет в окне выключен
    chek = chek + 1						#То добавляем окно в подходящее
    i2 = i2 + 1						#И переключаем следующее окно
    i3 = i3 + 1						#Считаем количество действий
    if i3 >= chislo_okon[a] and chek != chislo_okon[a]:	#Если количество действий больше или равно числу окон в этой квартире и чек не сработал
     chek = chislo_okon[a]				#"Включаем" чек
     warning = 1					#И добавляем флаг ВНИМАНИЕ
     if i2 == k:					#Если окно последнее обнуляем его до начала
      i2 = 0 					#Обнуляем его
   else:								#Иначе, если свет в окне включен
    chek = chek						#Чек не меняем
    i2 = i2 + 1						#Переключаем окно
    i3 = i3 + 1						#Считаем кол-во действий
  else:									#Иначе
   if warning == 1:						#Если флаг ВНИМАНИЕ поднят
    a = a + 1						#Переключаем квартиру
    i3 = 0							#И обнуляем счетчик ходов
   kolvo = kolvo + 1						#Иначе добавляем к пустым квартирам
   #kv = kv + str((n-1)*m + 1) + " "				#
   a = a + 1							#Переключаем квартиру
   chek = 0							#Выключаем чек
   i2 = i2 + 1							#переключаем окно
   i3 = 0								#Сбрасываем счетчик
   if i2 == k:							#Если окно было последним сбрасываем и его
    i2 = 0							#
 else:										#Если этаж закончился
  i = i + 1								#Переключаем этаж
  i3 = 0									#Сбрасываем счетчик
  warning = 0								#Сбрасываем флаг
  i2 = 0									#Начинаем с нового окна
else:
 print(kolvo)

[/apcode]

Решенный вопрос
Добавить комментарий