Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Подскажите, пожалуйста, про 1573 задачу "Великая таблица умножения". Не получается пройти 6 тест.
1
  1  Самоделкина Мария Владимировна, 02 сентября 2018 г. 0:04:39
      *1571

def tab(matr):
if len(matr) < 2 or len(matr[0]) < 2:
if len(matr) == 1 and len(matr[0]) == 1:
return matr[0][0] > 0
elif len(matr) == 1:
inc = matr[0][1] - matr[0][0]
for i in range(len(matr[0])-1):
if matr[0][i + 1] - matr[0][i] != inc or matr[0][i] % inc != 0:
return False
return True
else:
inc = matr[1][0] - matr[0][0]
for i in range(len(matr)-1):
if matr[i+1][0] - matr[i][0] != inc or matr[i][0] % inc != 0:
return False
return True
else:
lineInc = matr[0][1] - matr[0][0]
if lineInc < 1
return False
for i in range(len(matr)):
for j in range(len(matr[i]) - 1):
if matr[i][j + 1] - matr[i][j] != lineInc or matr[i][j] % lineInc != 0:
return False
lineInc += 1
return True


def task():
fin = open('INPUT.TXT', 'r')
input = [line.strip().split(' ') for line in fin]
N, M = map(int, input[0])
matr = [[int(input[j][i]) for i in range(M)] for j in range(1, N + 1)]
fout = open('OUTPUT.TXT', 'w')
fin.close()
if tab(matr):
fout.write('true')
else:
fout.write('false')
fout.close()


task()
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru