(А. Богданов) Ваня пишет скрипты для генерации заданий ЕГЭ. Известно время, которое затрачивает Ваня на написание каждого скрипта, и время выполнения скрипта. Запуск очередного скрипта возможен только после окончания выполнения скриптов, которые подготавливают для него данные, т. е. тех, от которых скрипт зависит. Пока скрипт работает, Ваня может писать следующий скрипт, но Ваня не может писать два скрипта одновременно и пишет все скрипты в том порядке, в котором они внесены в таблицу. Компьютер у Вани многоядерный и может обрабатывать много простых скриптов одновременно, без взаимного влияния на общую производительность. Определите минимальное время, через которое может завершиться выполнение всех скриптов при условии, что все независимые друг от друга скрипты могут выполняться параллельно.
Информация о скриптах записана в файле 22-65.xls. Типовой пример организации данных в файле:
| ID |
Время написания
скрипта (мин) |
Время выполнения
скрипта (мин) |
ID скриптов-в
поставщиков данных |
| 1 |
5 |
4 |
0 |
| 2 |
2 |
3 |
0 |
| 3 |
7 |
1 |
1; 2 |
| 4 |
4 |
7 |
3 |
В данном случае скрипт 1 можно запустить только через 5 минут после начала работы, он закончит выполняться через 5 + 4 = 9 минут. Скрипт 2 Ваня напишет через 5 + 2 = 7 минут, он сразу начнёт работу и закончит выполняться через 7 + 3 = 10 минут. Таким образом, через 11 минут все скрипты-поставщики данных для процесса 3 уже закончили работу, но сам скрипт 3 Ваня напишет (и сможет запустить) только через 5 + 2 + 7 = 14 мин после начала работы. Этот скрипт закончит выполняться через 14 + 1 = 15 минут. Последний скрипт 4 Ваня напишет через 14 + 4 = 18 мин, он закончит выполняться через 18 + 7 = 25 мин. Ответ: 25.