Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Параллельные процессы 2

(Время: 1 сек. Память: 32 Мб Сложность: 72%)

Вам дана информация о совокупности N вычислительных процессов в операционной системе, которые могут выполняться параллельно или последовательно. Приостанавливать процесс нельзя. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно.

Все независимые друг от друга процессы могут выполняться параллельно. Каждому процессу нужно время на подготовку перед запуском. Каждый процесс может начать выполнение не раньше, чем через D мс после возможного его запуска. Одновременно в системе может выполняться только K процессов. Если операционная система может запустить новый процесс, она выбирает процесс с наименьшим ID из всех процессов, готовых к запуску. Также в системе имеются M процессов, которые используют один и тот же ограниченный ресурс, поэтому не могут выполняться одновременно.

Требуется определить минимальное время в миллисекундах, через которое завершится выполнение всей совокупности процессов.

Входные данные

Входной файл INPUT.TXT в первой строке содержит три натуральных числа N, K, M (1 ≤ N, K ≤ 1000; 0 ≤ M ≤ 100). Далее идёт N строк, в каждой из которых записана информация об одном процессе, которая задается последовательностью целых чисел, разделенных пробелом: ID процесса B, время T выполнения процесса в миллисекундах, время D подготовки перед запуском в миллисекундах, далее следуют ID процессов A, которые должны быть выполнены до начала выполнения процесса B. Если процессы типа A отсутствуют, то четвертое число в строке равно 0. В последней строке через пробел указано M процессов (ID), которые не могут выполняться одновременно. Гарантируется, что все ID процессов различны и выполнение всех процессов возможно. (1 ≤ ID ≤ 109; 1 ≤ T ≤ 106; 0 ≤ D ≤ 1000).

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.

Пример

INPUT.TXTOUTPUT.TXT
18 4 0
1 5 0 0
2 2 0 0
3 4 0 0
4 4 0 2
5 5 0 2
6 6 0 2
7 4 0 2 3
8 6 0 1 3
12

Автор задачи

Владимир Игоревич Лукьянчиков

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 ЕГЭ по информатике
 Авторские задачи
 Тренировочные олимпиады
 Фёдор Меньшиков. Олимпиадные задачи по программированию, 2006
 Сборник задач В.И. Лукьянчикова
 Булева Алгебра
 Геометрия
 Динамическое программирование
 Комбинаторика
 Разбор строк
 Разное
 Разное 2
 Рекурсия, перебор
 Системы счисления
 Сортировка и последовательности
 Теория графов
 Формула
 Целочисленная арифметика
 Целочисленная арифметика 2
 Структуры данных
 Бинарный поиск
 Занимательная математика
 Занимательная математика 2
 Занимательная математика 3
 A. Адресация - 2
 B. Адресация - 3
 C. Адресация - 1
 D. Городок 2
 E. Игра с друзьями - 2
 F. Исследование
 G. Преграда
 H. Задание с матрицей
 I. Киллер-судоку
 J. Бросок в кольцо
 K. Исследовательская группа
 L. Падающий шарик
 M. Палиндромные диапазоны 1
 N. Палиндромные диапазоны 2
 O. Манускрипт
 P. Минимальное преобразование
 Q. Коробки в контейнере
 R. Маяки
 S. Поймай бабочку
 T. Точки на окружностях
 U. Исполнитель 5
 V. Параллельные процессы 2
 W. Код активации криптомодуля
 X. На уроке рисования
 Y. Сбой в квантовом тахометре
 Z. Лаборатория

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru