Принцип <<горячей картошки>>
시간 제한2초메모리 제한1024 MB
각 노드의 고정된 라우팅 일정과 패킷 발생 시각이 주어질 때, 충돌 없이 목적지에 도달하도록 최대 개수의 패킷을 고른다.
문제
Принцип <<горячей картошки>> представляет собой метод маршрутизации пакетов в сети. Его основными достоинствами являются отсутствие таблиц маршрутизации и отсутствие необходимости анализировать пакеты в процессе их маршрутизации.
Будем считать, что сеть состоит из узлов, между некоторыми парами узлов установлены сетевые соединения. Каждый узел в сети имеет расписание. Расписание узла представляет собой последовательность номеров узлов. Сеть работает по тактам следующим образом.
В течение некоторого такта в сети может находиться несколько пакетов. Каждый пакет имеет исходный узел и узел, в который он должен быть доставлен, в течение такта он находится в некотором узле. У каждого пакета есть время его появления, в начале этого такта он возникает в своем исходном узле. Если в течение такта пакет находится в том узле, в который он должен быть доставлен, то считается, что он доставлен в момент и он исчезает из сети. Иначе он переправляется в узел , где он оказывается в начале следующего такта. Если в начале некоторого такта несколько пакетов оказываются в одном узле, они все уничтожаются.
Главный недостаток этого принципа маршрутизации является следствием его основных преимуществ. Из-за отсутствия таблиц маршрутизации и анализа пакетов требуется очень аккуратно подбирать расписание вершин и время появления пакетов, чтобы все они были доставлены. Даже при удачном выборе часто нельзя доставить все пакеты.
Вам задано описание сети и набор пакетов. Для каждого пакета вы можете решить, будете ли вы пытаться его доставить. Вы должны выбрать максимальное количество пакетов, чтобы все они в процессе работы сети оказались доставлены.
입력
Первая строка входного файла содержит число --- количество узлов в сети (). Следующие строк описывают узлы, -й узел описывается сначала числом --- длиной своего расписания, а затем числами: (, ).
Следующая строка входного файла содержит число --- количество пакетов (), затем следует строк, которые описывают пакеты. Каждый пакет описывается своим исходным узлом , узлом, в который его следует доставить и временем появления (, ).
출력
На первой строке выходного файла выведите целое число --- максимальное количество пакетов, которое можно доставить. Вторая строка должна содержать целых чисел --- номера пакетов, которые можно доставить. Пакеты нумеруются от 1 до в порядке, в котором они заданы во входном файле.