Задача #6324
Процессы
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно. Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, то в таблице указано значение 0.
Определите максимально возможное целочисленное неизвестное время выполнения процесса t, если известно, что минимально возможное время выполнения всей совокупности процессов от него не зависит.
Типовой пример организации данных в файле:
| ID процесса B | Время выполнения процесса B (мс) | ID процесса(-ов) A |
| 1 | 4 | 0 |
| 2 | 3 | 0 |
| 3 | t | 1; 2 |
| 4 | 7 | 3 |
Пусть выполнение данной совокупности процессов закончилось за 15 мс. В данном случае независимые процессы 1 и 2 могут выполняться параллельно, при этом процесс 1 завершится через 4 мс, а процесс 2 – через 3 мс с момента старта. Процесс 3 может начаться только после завершения обоих процессов 1 и 2, то есть, через 4 мс после старта. Он длится t мс и закончится через 4 + t мс после старта. Выполнение процесса 4 может начаться только после завершения процесса 3, то есть, через 4 + t мс. Он длится 7 мс, так что минимальное время завершения всех процессов равно 4 + t + 7 = 15 мс. Следовательно, t = 15 – 4 – 7 = 4 мс. Ответ для этого примера: 4.