printРабочее место участника

printЗадачи

1384. Производство деталей

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0) idea

Предприятие "Авто-2010" выпускает двигатели для известных во всем мире автомобилей. Двигатель состоит ровно из `n` деталей, пронумерованных от 1 до `n`, при этом деталь с номером `i` изготавливается за `p_i` секунд. Специфика предприятия "Авто-2010" заключается в том, что там одновременно может изготавливаться лишь одна деталь двигателя. Для производства некоторых деталей необходимо иметь предварительно изготовленный набор других деталей.
Генеральный директор "Авто-2010" поставил перед предприятием амбициозную задачу — за наименьшее время изготовить деталь с номером 1, чтобы представить ее на выставке.
Требуется написать программу, которая по заданным зависимостям порядка производства между деталями найдет наименьшее время, за которое можно произвести деталь с номером 1.
Формат входных данных
Первая строка входного файла содержит число `n` (`1\ ≤\ n\ ≤\ 100\ 000`) — количество деталей двигателя. Вторая строка содержит `n` натуральных чисел `p_1,\ p_2,\ …,\ p_n`, определяющих время изготовления каждой детали в секундах. Время для изготовления каждой детали не превосходит `10^9` секунд.
Каждая из последующих `n` строк входного файла описывает характеристики производства деталей. Здесь `i`-я строка содержит число деталей `k_i`, которые требуется изготовить перед производством детали с номером `i`, а также их номера. Сумма всех чисел `k_i` не превосходит `200\ 000`.
Известно, что не существует циклических зависимостей в производстве деталей.
Формат выходных данных
В первой строке выходного файла два числа: минимальное время (в секундах), необходимое для скорейшего производства детали с номером 1 и число `k` деталей, которые необходимо для этого произвести. Во второй строке выведите через пробел `k` чисел — номера деталей в том порядке, в котором следует их производить для скорейшего производства детали номер 1.

Пример ввода 1

3
100 200 300
1 2
0
2 2 1

Пример вывода 1

300 2
2 1

Пример ввода 2

2
2 3
1 2
0

Пример вывода 2

5 2
2 1

Пример ввода 3

4
2 3 4 5
2 3 2
1 3
0
2 1 3

Пример вывода 3

9 3
3 2 1
Система оценивания
Решения, правильно работающие только для тестов, в которых `n` не превосходит 10, будут оцениваться из 40 баллов.
Решения, правильно работающие только для тестов, в которых `n` не превосходит 100, будут оцениваться из 60 баллов.
Решения, правильно работающие только для тестов, в которых `n` не превосходит 1000, будут оцениваться из 80 баллов.
Источник: региональный этап Всероссийской олимпиады по информатике 2009/2010, http://neerc.ifmo.ru/school/
loading