Тема 27. Программирование – оптимизация по времени и по памяти
27.06 Доминошки
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование – оптимизация по времени и по памяти
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#45910

На столе выложили цепочку из N  костяшек по принципу домино. Под костяшкой понимается пара любых неотрицательных чисел, каждое не превышает 100. В наборе могут быть одинаковые костяшки. Переставлять местами костяшки нельзя, но можно поворачивать любое количество костяшек, получая, например, из костяшки 1-2 костяшку 2-1. Определите максимальную длину цепочки костяшек домино, которую можно получить с помощью переворачиваний. Под цепочкой понимается последовательность костяшек, в которой второе число первой костяшки равно первому числу второй.

Входные данные

Дан входной файл, он содержит в первой строке количество пар N  (1 ≤ N ≤ 100000  ). Каждая из следующих   N  строк содержит два натуральных числа, не превышающих 100.

В ответе укажите одно число: искомое значение для файла.

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel):

Скопируем все числа из файла и перенесем их в Excel с помощью специальной вставки. Для этого в левом верхнем углу в разделе Главное нажмем вставить, выберем Использовать мастер импорта текста, в новом окне выберем с разделителем → пробел → Готово.

Удалим первое число, отвечающее за количество доминошек, и для удобства назовем столбы в соответствии с их назначениями.

PIC

Вставим пустую строку между первой и второй строками. Для этого нажмём правой кнопкой мыши на цифру, отвечающую за вторую строку, и нажмем Вставить

PIC

Заполним строки 1  и 0  так, как показано на изображении. Это необходимо для того, чтобы мы не заполнили эти ячейки формулами, ведь в таком случае Excel будет выдавать ошибку, так как формулы будут ссылаться не на числовые значения, а на текст.

PIC

Напишем формулу в ячейку C4  =МАКС(ЕСЛИ(A4=B3;C3+1;1);ЕСЛИ(A4=A3;D3+1;1)), скопируем её на весь столбец C

PIC

Напишем формулу в ячейку D4  =МАКС(ЕСЛИ(B4=B3;C3+1;1);ЕСЛИ(B4=A3;D3+1;1)), скопируем её на весь столбец D

PIC

Находим максимум из столбцов C  и D  с помощью формулы =МАКС(C3:D100002). Полученное значение запишем в ответ.

PIC

Решение 2 (прога):

file = open(’1.txt’)

n = int(file.readline())
current_dom = [int(s) for s in file.readline().split()]
prev_dom = current_dom.copy()

current_len = 1
current_len_reversed = 1
answer = 1

for i in range(1, n):
    current_dom = [int(s) for s in file.readline().split()]

    old_current_len = current_len
    old_current_len_reversed = current_len_reversed
    current_len, current_len_reversed = 1, 1

    # Если начало текщей совпадает с концом предыдущей
    if (current_dom[0] == prev_dom[1]):
        current_len = old_current_len + 1
    # Если начало текущей совпадает с началом предыдущей
    if (current_dom[0] == prev_dom[0]):
        current_len = old_current_len_reversed + 1
    # Если конец текущей совпадает с концом предыдущей
    if (current_dom[1] == prev_dom[1]):
        current_len_reversed = old_current_len + 1
    # Если конец текущей совпадает с началом предыдущей
    if (current_dom[1] == prev_dom[0]):
        current_len_reversed = old_current_len_reversed + 1
    if current_len > answer:
        answer = current_len
    if current_len_reversed > answer:
        answer = current_len_reversed

    prev_dom = current_dom.copy()

print(answer)

Ответ: 6

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное обучение
в Школково

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!