Решение задачи "Соревнования 3"

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Условие задачи
    informatics.mc...
    Тема "Вложенные списки"
    egoroffartem.py...

Komentáře • 23

  • @alchymista9219
    @alchymista9219 Před 3 lety +3

    Артем, объясни, пожалуйста, такой кусок кода:
    а = [[7, 10], [6, 10], [5, 10]]
    print(a.index(max(a)))
    По какой логике программа выводит индекс с вложенным списком? Что считается максимальным в данным случае?

    • @egoroffchannel
      @egoroffchannel  Před 3 lety +1

      посмотри, что возвращает max(a)

    • @user-lk8go3lx4k
      @user-lk8go3lx4k Před 2 lety

      Он смотрит на максимальное 1 число вложенного списка.
      в данном случае 7 максимальное 1 число из всех списков

  • @user-qp3vy7cs5g
    @user-qp3vy7cs5g Před 2 lety +1

    почему курс курс по джанго закрыт? :(

  • @rainblikhachev810
    @rainblikhachev810 Před 2 lety

    Приветствую Артем!
    На степике не проходит 4-й тест. Наверное вариантов 50 входных значений перепробовал. Выводит все правильно, но все равно не принимает. Подскажи пожалуйста, в чем проблема?
    a,b = map(int, input().split())
    c = [[int(i) for i in input().split()] for j in range(a)]
    s = [max(i) for i in c]
    d = [sum(j) for j in c]
    if s.count(max(s))==1:
    print(s.index(max(s)))
    elif s.count(max(s))>1 and d.count(max(d))==1:
    print(d.index(max(d)))
    else:
    print(d.index(max(d)))

  • @ojlogicofficial141
    @ojlogicofficial141 Před rokem

    Как до такого вообще можно было додуматься?(вопрос риторический) Как понять работу вложенного цикла в связке со веми условиями во внешнем? Как работакет max_try и s?

  • @MusicaPractica
    @MusicaPractica Před 2 lety

    Артем, подскажи, пожалуйста. Не доходит никак как ты сумму в строке считаешь. Мне кажется, она у тебя не всю строку считает (т.е. не сумма всех баллов игрока), а стопорится там, где находится максимум по значению. Представим, что у нас в первой строке первое число 7. значит, макс_скор = 7 и макс_сумма = 7. При этом мы не посчитали, какая сумма всей строки (допустим, там было бы 7, 2, 1, но макс_сум все равно была бы 7). А потом представим, что в следующей строке на самом последнем месте мы опять натыкаемся на 7. Допустим, вторая строка: 1, 0, 7. Поэтому во второй строке макс_сум будет равна 8. Значит, по этой логике победит второй, хотя это неправильно. Подскажи плиз, где у меня запинка в логике. Надеюсь, не сильно коряво объяснила) Заранее спасибо

    • @egoroffchannel
      @egoroffchannel  Před 2 lety +1

      Просто нужно для каждой строки прочитать сумму, и прежде чем переходить к следующей строке нужно проверить на максимум и сохранить если встретили сумму больше

    • @MusicaPractica
      @MusicaPractica Před 2 lety

      @@egoroffchannel ааа, поняла, мы же после того, как весь ряд переберем, т.е. после того, как посчитали сумму всего ряда и нашли максимум из всего ряда, только после этого мы начинаем заниматься всякими сравнениями. Большое спасибо, буду внимательней к отступам относиться)

  • @AlekseyChupkov
    @AlekseyChupkov Před 3 lety

    Доброго дня, Артем!
    Почему не сработал код ниже, я уже все варианты примеров перепробовал, но он не пропускает?
    n, m = map(int, input().split())
    lst = [list(map(int, input().split())) for i in range(n)]
    spr, num, sum_bros = 0, 0, 0
    for i in range(n):
    if spr < max(lst[i]):
    spr = max(lst[i])
    num = i
    sum_bros = sum(lst[i])
    elif spr == max(lst[i]):
    if sum_bros < sum(lst[i]):
    num = i
    else:
    continue
    print(num)

    • @egoroffchannel
      @egoroffchannel  Před 3 lety

      вроде суммы не перезаписывается, когда максимальные попытки равны

  • @user-db5re6md2m
    @user-db5re6md2m Před 3 lety

    Можете сказать, что неправильно или почему не проходит 2й тест на степике и 11-12 на информатикс?
    i_maxx=maxx=0
    n,m=map(int,input().split())
    s=[0]*n #Список, хранящий суммы всех участников по порядку
    a=[list(map(int,input().split())) for i in range(n)]
    for i in range(n):
    for j in range(m):
    s[i]+=a[i][j] #плюс к сумме iго участника
    if a[i][j]>maxx: #Проверка на макс. рез.
    maxx=a[i][j] #Присвоение макс рез.
    i_maxx=i #Присвоение номера участника с макс.рез
    elif a[i][j]==maxx: #Если макс.рез совпадают сравниваем суммы и снова присваиваем если сумма больше
    if s[i]>s[i_maxx]:
    i_maxx=i

    print(i_maxx)

    • @egoroffchannel
      @egoroffchannel  Před 3 lety

      вот пример, когда у тебя проблемы
      2 3
      1 2 7
      1 7 5

    • @user-db5re6md2m
      @user-db5re6md2m Před 3 lety

      @@egoroffchannel Спасибо, изменил проверку суммы - sum(a[i])>sum(a[i_maxx])

  • @ntsar2250
    @ntsar2250 Před 3 lety

    Задача Состязания-4, к сожалению, не разобрана.
    Не пойму, где просчет в коде. Компилятор выдает только 8 правильных, но входных данных не показывает, что бы увидеть ошибку.
    informatics.msk.ru/mod/statements/view.php?chapterid=359#1 - задача
    вот мое решение:
    n, m = map(int, input().split())
    l = []
    sum_list = []
    for i in range(n):
    l.append(list(map(int, input().split())))
    for i in range(n):
    s = 0
    for j in range(m):
    s += l[i][j]
    sum_list.append(s)
    print(sum_list.count(max(sum_list)))
    Натолкните, пожалуйста, на мысль.

    • @egoroffchannel
      @egoroffchannel  Před 3 lety +1

      могу разбор сделать

    • @ntsar2250
      @ntsar2250 Před 3 lety

      @@egoroffchannel Большое спасибо. Хотя если есть возможность подкинуть мысль, тогда и сам увижу ошибку.

    • @alchymista9219
      @alchymista9219 Před 3 lety

      @@egoroffchannel , разбор бы не помешал. Тест я прошел, но код я написал, как мне видится, очень длинный. Просто хотелось бы увидеть, что получается у тебя и лишний раз поработать над "изяществом" своего кода

    • @egoroffchannel
      @egoroffchannel  Před 3 lety

      czcams.com/video/MWce-R9XZ3M/video.html

    • @egoroffchannel
      @egoroffchannel  Před 3 lety

      @@alchymista9219 czcams.com/video/MWce-R9XZ3M/video.html