Олимпиадный тренинг

Задача . кп-2024-96


Задача

Темы:
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно. Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, то в таблице указано значение 0.

Будем считать, что процессы выполняются одновременно, в случае если есть хотя бы один момент времени, когда оба процесса выполнялись. Найдите количество процессов, которые могли выполняться одновременно с процессом номер 13 (не обязательно все одновременно).
 
ID процесса B Время выполнения процесса B (мс) ID процесса(ов) A
1 4 0
2 3 1
3 1 2
4 7 0
5 6 1; 4

Пояснение к примеру: допустим нам нужно определить количество процессов, которые могли выполняться одновременно с процессом 2. Процессы 1 и 3 не подходят, т.к. процесс 2 можно запустить только после выполнения процесса 1, а процесс 3 только после выполнения процесса 2. Процесс 4 подходит в случае, если процесс 1 был запущен в самом начале, сразу после него был запущен процесс 2 (через 4 мс после начала работы программы) и процесс 4 также был запущен сразу после начала работы программы (тогда с 4 по 7 мс процессы 2 и 4 выполнялись совместно).
Процесс 5 подходит, в случае, если запустить процесс 4 в самом начале, и сразу после него (через 7 мс после начала работы программы) запустить процесс 5. Процесс 1 же можно запустить через 3 мс после начала работы программы (тогда закончится он к 7 мс). И сразу после него запустить процесс 2. Тогда с 7 мс по 10 мс процесс 2 и 5 будут выполняться совместно.

Файл к заданию

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя