27.06 Доминошки
Ошибка.
Попробуйте повторить позже
На столе выложили цепочку из N костяшек по принципу домино. Под костяшкой понимается пара любых
неотрицательных чисел, каждое не превышает 100. В наборе могут быть одинаковые костяшки. Переставлять местами
костяшки нельзя, но можно поворачивать любое количество костяшек, получая, например, из костяшки 1-2
костяшку 2-1. Определите максимальную длину цепочки костяшек домино, которую можно получить с помощью
переворачиваний. Под цепочкой понимается последовательность костяшек, в которой второе число первой
костяшки равно первому числу второй. Кроме того, может встретиться число 0, оно образует пару с любым
числом, в том числе и с собой. То есть последовательность собрать
можно.
Входные данные
Дан входной файл, он содержит в первой строке количество пар
. Каждая из следующих
строк содержит два натуральных числа, не превышающих
.
В ответе укажите одно число: искомое значение для файла.
Первое решение:
f = open(’4.txt’) n = int(f.readline()) x = [int(s) for s in f.readline().split()] y = x.copy() ans = 1 cur, cur_p = 1, 1 for i in range(1, n): last, last_p = cur, cur_p cur, cur_p = 1, 1 y = x.copy() x = [int(s) for s in f.readline().split()] if x[0] == y[1] or x[0] == 0 or y[1] == 0: cur = max(cur, last + 1) if x[0] == y[0] or x[0] == 0 or y[0] == 0: cur = max(cur, last_p + 1) if x[1] == y[1] or x[1] == 0 or y[1] == 0: cur_p = max(cur_p, last + 1) if x[1] == y[0] or x[1] == 0 or y[0] == 0: cur_p = max(cur_p, last_p + 1) ans = max(ans, cur, cur_p) f.close() print(ans)
Второе решение:
with open("4.txt", "r") as f: n = int(f.readline()) ans = 0 cur = [1, 1] x = list(map(int, f.readline().split())) y = x.copy() for i in range(n - 1): last = cur.copy() cur = [1, 1] y = x.copy() x = list(map(int, f.readline().split())) for k in range(2): for j in range(2): if x[k] == y[1 - j] or x[k] == 0 or y[1 - j] == 0: cur[k] = max(last[j] + 1, cur[k]) ans = max(ans, cur[0], cur[1]) print(ans)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!