Красивая матрица codeforces

Поділитися
Вставка
  • Опубліковано 27 вер 2024
  • Условие задачи
    codeforces.com...
    Тема "Вложенные списки"
    egoroffartem.py...

КОМЕНТАРІ • 26

  • @skywalker2743
    @skywalker2743 2 роки тому +4

    Видео опубликовано 1 минуту назад но я не понимаю почему все комментарии написаны год назад

    • @LCDI_
      @LCDI_ 2 роки тому

      Видео записано и вылажено 2 года назад, оно было скрыто какое-то время по какой-то причине, он его открыл только 10 часов назад

    • @skywalker2743
      @skywalker2743 2 роки тому

      Понятно

  • @nto2503
    @nto2503 4 роки тому +1

    Спасибо! Смутили условия задачи: 1) зачем написано в услосиях, что мы нумеруем строки от 1 до 5. Когда мы это делаем и зачем мы это делаем, если мы это не используем. 2) почему в условиях преобразований указано, что i изменяется от 1 до 5. Когда, на самом деле от 0 до 4?

    • @egoroffchannel
      @egoroffchannel  4 роки тому +1

      это просто смещение отсчета
      человеку проще считать с единицы поэтому и написали)
      я же в объяснении руководствовался тем, что в питоне индексы с 0 начинаются

    • @nto2503
      @nto2503 4 роки тому

      @@egoroffchannel stepik.org/lesson/296964/step/10?unit=278692 В условиях задачи "Состязания" ошибка?

    • @egoroffchannel
      @egoroffchannel  4 роки тому

      @@nto2503 ошибка в чем?

    • @nto2503
      @nto2503 4 роки тому

      Комментарий на степике оставил под задачей, не стал сюда писать.

  • @РомаРоманов-ь5с
    @РомаРоманов-ь5с 3 роки тому +2

    В условии задачи написано :
    Поменять местами две соседние строки матрицы, то есть строки с номерами i и i + 1 для некоторого целого i (1 ≤ i 

    • @tagepaul1646
      @tagepaul1646 3 роки тому

      Точно также, выполнял задание по условиям 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)

  • @legohistory8039
    @legohistory8039 2 роки тому +1

    Видео опубликовано 2часа назад, а комменты написаны год назад...
    Ютуб, что с тобой?

    • @egoroffchannel
      @egoroffchannel  2 роки тому

      Оно закрыто было до этого момен п

    • @legohistory8039
      @legohistory8039 2 роки тому

      @@egoroffchannel понял. Спасибо!

  • @bulik1384
    @bulik1384 3 роки тому

    Артём, объясни пожалуйста решение этой задачи informatics.msk.ru/mod/statements/view3.php?id=282&chapterid=363#1

    • @tomkcat
      @tomkcat Рік тому

      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()

  • @artemsolovev9231
    @artemsolovev9231 4 роки тому

    Добрый вечер, могли бы объяснить решение этой задачи? informatics.msk.ru/mod/statements/view3.php?id=282&chapterid=355

  • @inkiik
    @inkiik 4 роки тому

    Добрый вечер, могли бы объяснить решение это задачи? acmp.ru/index.asp?main=task&id_task=39

  • @skywalker2743
    @skywalker2743 2 роки тому +1

    Я первый

  • @Adaptingable
    @Adaptingable Рік тому

    z = ''.join(''.join(input().split()) for _ in range(5)).index('1')
    x, y = z // 5, z % 5
    print(abs(x-2) + abs(y-2))

  • @Dryagin_Andry
    @Dryagin_Andry Рік тому +1

    Вот как все оказывается просто, а я в циклах переставлял строки местами пока единица не окажется в строке с индексом 2, и подсчитывал количество перестановок, потом транспонировал матрицу и снова повторял такой же цикл с транспонированной матрицей, в итоге единица оказывалась в центре матрицы))) Код получился на 22 строки, но зато при желание можно посмотреть нахождение единицы после каждой итерации))

  • @Dryagin_Andry
    @Dryagin_Andry Рік тому

    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)

  • @Dr._S_Brule
    @Dr._S_Brule 2 роки тому

    Так же делал 😁

  • @lait6621
    @lait6621 2 роки тому

    Имхо тут не нужны второй цикл for и вложенный лист, единицу можно отловить на вводе))