Спасибо! Смутили условия задачи: 1) зачем написано в услосиях, что мы нумеруем строки от 1 до 5. Когда мы это делаем и зачем мы это делаем, если мы это не используем. 2) почему в условиях преобразований указано, что i изменяется от 1 до 5. Когда, на самом деле от 0 до 4?
это просто смещение отсчета человеку проще считать с единицы поэтому и написали) я же в объяснении руководствовался тем, что в питоне индексы с 0 начинаются
Точно также, выполнял задание по условиям 1-2. Даже написал рабочий код) но степик не принимает, говорит в лимит времени не укладывается. Как оказалось нужно было просто подсчитать количество возможных шагов) razmer = 5 a = [] for i in range(5): b = [] x = list(map(int,input().split())) for i in range(5): b.append(x[i]) a.append(b) count = 0 while a[2][2] !=1: for i in range(razmer): for j in range(razmer): if a[i][j] == 1: strok = i stolb = j if strok > 2: a[strok],a[strok -1] = a[strok - 1],a[strok] count+=1 elif strok < 2: a[strok],a[strok+ 1] = a[strok +1],a[strok] count+=1 elif stolb > 2: a[stolb],a[stolb -1] = a[stolb -1],a[stolb] count+=1 elif stolb < 2: a[stolb],a[stolb +1] = a[stolb +1],a[stolb] count+=1 print(count)
n, m = map(int, input().split()) # Создаем пустой массив A = [[0]*m for i in range(n)] # Заполняем массив "змейкой" for i in range(n): if i % 2 == 0: for j in range(m): A[i][j] = i*m + j else: for j in range(m-1, -1, -1): A[i][j] = i*m + m-1-j # Выводим массив for i in range(n): for j in range(m): print("{:3}".format(A[i][j]), end=" ") print()
Вот как все оказывается просто, а я в циклах переставлял строки местами пока единица не окажется в строке с индексом 2, и подсчитывал количество перестановок, потом транспонировал матрицу и снова повторял такой же цикл с транспонированной матрицей, в итоге единица оказывалась в центре матрицы))) Код получился на 22 строки, но зато при желание можно посмотреть нахождение единицы после каждой итерации))
count = 0 matrix = [] for i in range(5): matrix.append([int(x) for x in input().split()]) while 1 not in matrix[2]: for i in range(5): if 1 in matrix[i] and i < 2: matrix[i], matrix[i + 1] = matrix[i + 1], matrix[i] count += 1 elif 1 in matrix[i] and i > 2: matrix[i], matrix[i - 1] = matrix[i - 1], matrix[i] count += 1 matrix = [[x[i] for x in matrix] for i in range(5)] while 1 not in matrix[2]: for i in range(5): if 1 in matrix[i] and i < 2: matrix[i], matrix[i + 1] = matrix[i + 1], matrix[i] count += 1 elif 1 in matrix[i] and i > 2: matrix[i], matrix[i - 1] = matrix[i - 1], matrix[i] count += 1 print(count)
Видео опубликовано 1 минуту назад но я не понимаю почему все комментарии написаны год назад
Видео записано и вылажено 2 года назад, оно было скрыто какое-то время по какой-то причине, он его открыл только 10 часов назад
Понятно
Спасибо! Смутили условия задачи: 1) зачем написано в услосиях, что мы нумеруем строки от 1 до 5. Когда мы это делаем и зачем мы это делаем, если мы это не используем. 2) почему в условиях преобразований указано, что i изменяется от 1 до 5. Когда, на самом деле от 0 до 4?
это просто смещение отсчета
человеку проще считать с единицы поэтому и написали)
я же в объяснении руководствовался тем, что в питоне индексы с 0 начинаются
@@egoroffchannel stepik.org/lesson/296964/step/10?unit=278692 В условиях задачи "Состязания" ошибка?
@@nto2503 ошибка в чем?
Комментарий на степике оставил под задачей, не стал сюда писать.
В условии задачи написано :
Поменять местами две соседние строки матрицы, то есть строки с номерами i и i + 1 для некоторого целого i (1 ≤ i
Точно также, выполнял задание по условиям 1-2. Даже написал рабочий код) но степик не принимает, говорит в лимит времени не укладывается. Как оказалось нужно было просто подсчитать количество возможных шагов)
razmer = 5
a = []
for i in range(5):
b = []
x = list(map(int,input().split()))
for i in range(5):
b.append(x[i])
a.append(b)
count = 0
while a[2][2] !=1:
for i in range(razmer):
for j in range(razmer):
if a[i][j] == 1:
strok = i
stolb = j
if strok > 2:
a[strok],a[strok -1] = a[strok - 1],a[strok]
count+=1
elif strok < 2:
a[strok],a[strok+ 1] = a[strok +1],a[strok]
count+=1
elif stolb > 2:
a[stolb],a[stolb -1] = a[stolb -1],a[stolb]
count+=1
elif stolb < 2:
a[stolb],a[stolb +1] = a[stolb +1],a[stolb]
count+=1
print(count)
Видео опубликовано 2часа назад, а комменты написаны год назад...
Ютуб, что с тобой?
Оно закрыто было до этого момен п
@@egoroffchannel понял. Спасибо!
Артём, объясни пожалуйста решение этой задачи informatics.msk.ru/mod/statements/view3.php?id=282&chapterid=363#1
n, m = map(int, input().split())
# Создаем пустой массив
A = [[0]*m for i in range(n)]
# Заполняем массив "змейкой"
for i in range(n):
if i % 2 == 0:
for j in range(m):
A[i][j] = i*m + j
else:
for j in range(m-1, -1, -1):
A[i][j] = i*m + m-1-j
# Выводим массив
for i in range(n):
for j in range(m):
print("{:3}".format(A[i][j]), end=" ")
print()
Добрый вечер, могли бы объяснить решение этой задачи? informatics.msk.ru/mod/statements/view3.php?id=282&chapterid=355
ua-cam.com/video/JEu4oF3l7w4/v-deo.html
Добрый вечер, могли бы объяснить решение это задачи? acmp.ru/index.asp?main=task&id_task=39
хорошо
ua-cam.com/video/yZ41GVuHrSA/v-deo.html
Я первый
z = ''.join(''.join(input().split()) for _ in range(5)).index('1')
x, y = z // 5, z % 5
print(abs(x-2) + abs(y-2))
Вот как все оказывается просто, а я в циклах переставлял строки местами пока единица не окажется в строке с индексом 2, и подсчитывал количество перестановок, потом транспонировал матрицу и снова повторял такой же цикл с транспонированной матрицей, в итоге единица оказывалась в центре матрицы))) Код получился на 22 строки, но зато при желание можно посмотреть нахождение единицы после каждой итерации))
count = 0
matrix = []
for i in range(5):
matrix.append([int(x) for x in input().split()])
while 1 not in matrix[2]:
for i in range(5):
if 1 in matrix[i] and i < 2:
matrix[i], matrix[i + 1] = matrix[i + 1], matrix[i]
count += 1
elif 1 in matrix[i] and i > 2:
matrix[i], matrix[i - 1] = matrix[i - 1], matrix[i]
count += 1
matrix = [[x[i] for x in matrix] for i in range(5)]
while 1 not in matrix[2]:
for i in range(5):
if 1 in matrix[i] and i < 2:
matrix[i], matrix[i + 1] = matrix[i + 1], matrix[i]
count += 1
elif 1 in matrix[i] and i > 2:
matrix[i], matrix[i - 1] = matrix[i - 1], matrix[i]
count += 1
print(count)
Так же делал 😁
Имхо тут не нужны второй цикл for и вложенный лист, единицу можно отловить на вводе))