27.06 Доминошки
Ошибка.
Попробуйте повторить позже
На столе выложили цепочку из N костяшек по принципу домино. Под костяшкой понимается пара любых неотрицательных
чисел, каждое не превышает 100. В наборе могут быть одинаковые костяшки. Переставлять местами костяшки нельзя, но
можно поворачивать любое количество костяшек, получая, например, из костяшки 1-2 костяшку 2-1. Определите
максимальную длину цепочки костяшек домино, которую можно получить с помощью переворачиваний.
Под цепочкой понимается последовательность костяшек, в которой второе число первой костяшки равно
первому числу второй. Кроме того, на костяшке может быть число 0, из него нельзя собрать пару, то есть
цепочку собрать нельзя, так как два нуля не присоединимы друг к
другу.
Входные данные
Дан входной файл, он содержит в первой строке количество пар
. Каждая из следующих
строк содержит два натуральных числа, не превышающих
.
В ответе укажите одно число: искомое значение для файла.
Первое решение:
n = int(f.readline())
x = [int(s) for s in f.readline().split()]
y = x.copy()
ans = 0
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] and x[0] != 0:
cur = max(cur, last + 1)
if x[0] == y[0] and x[0] != 0:
cur = max(cur, last_p + 1)
if x[1] == y[1] and x[1] != 0:
cur_p = max(cur_p, last + 1)
if x[1] == y[0] and x[1] != 0:
cur_p = max(cur_p, last_p + 1)
ans = max(ans, cur, cur_p)
f.close()
print(ans)
Второе решение:
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] and x[k] != 0:
cur[k] = max(last[j] + 1, cur[k])
ans = max(ans, cur[0], cur[1])
print(ans)
Специальные программы

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

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

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

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

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

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