Підприємство Авто-2012 випускає двигуни для відомих у світі автомобілів. Двигун складається рівно з деталей, пронумерованих від до , причому деталь з номером виготовляється за p_i секунд. Особливістю підприємства Авто-2012 є те, що одночасно може виготовлятися лише одна деталь двигуна. Для виробництва деяких деталей необхідно мати попередньо виготовлений набір інших деталей.
Генеральний директор Авто-2012 поставив перед підприємством амбітне завдання: виготовити деталь з номером у найкоротший термін, щоб представити її на виставці.
Напишіть програму, яка за заданими залежностями порядку виробництва між деталями знаходить найменший час, за який можна виготовити деталь з номером .
Перший рядок містить (1 \le n \le 10^5) натуральних чисел p_1, p_2, \ldots, p_n, які визначають час виготовлення кожної деталі у секундах.
Кожен з наступних рядків описує характеристики виробничого процесу для кожної деталі. -ий рядок містить список деталей, які потрібні для виробництва деталі з номером . У списку немає повторюваних номерів деталей. Список також може бути порожнім — тоді це буде порожній рядок. Сума довжин всіх списків не перевищує .
Відомо, що у виробництві деталей не існує циклічних залежностей.
Виведіть мінімальний час (у секундах), необхідний для найшвидшого виробництва деталі з номером .
Input | Output |
|---|---|
4 8 8 7<br>2 3<br>4<br><br> | 19 |
Приклад 1
Приклад 2
Для прикладу оптимальний шлях:
Виготовити деталі , та одну за одною.
Потім виготовити деталь .
Загальний час 7 + 8 + 8 + 4 = 27, але оскільки деталі і можуть бути виготовлені паралельно після виготовлення деталі , необхідно враховувати найтриваліший ланцюжок — 7 + 8 + 4 = 19.