Задание №6525. Файл, необходимый для выполнения задания: ссылка для скачивания. В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Приостановка выполнения процесса не допускается. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно. Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0. Определите максимальное количество процессов, которые могут быть завершены за первые 17 мс. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1. Типовой пример организации данных в файле. Типовой пример организации данных во входном файле приводится только в демонстрационном варианте ЕГЭ! ID процесса B Время выполненияпроцесса B (мс)ID процесса(-ов) A130241322; 4450581; 4 Для приведённой таблицы найдём количество процессов, которые могут быть завершены за первые 7 мс. Это 3 процесса (за это время завершатся процессы 1, 2 и 4). Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.

Задание №6525.
Построение математической модели. ЕГЭ по информатике

Файл, необходимый для выполнения задания: ссылка для скачивания.

В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно.

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

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

Определите максимальное количество процессов, которые могут быть завершены за первые 17 мс. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.

Типовой пример организации данных в файле.

Типовой пример организации данных во входном файле приводится только в демонстрационном варианте ЕГЭ!


ID процесса B

Время выполнения
процесса B (мс)

ID процесса(-ов) A
130
241
322; 4
450
581; 4

Для приведённой таблицы найдём количество процессов, которые могут быть завершены за первые 7 мс. Это 3 процесса (за это время завершатся процессы 1, 2 и 4).

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.

Пояснение:
Приведем решение данного задания на языке программирования Python. Для этого необходимо скопировать содержимое Excel файла в текстовый документ с расширением .txt.

import collections

def read_input(filename="input.txt"):
    processes = {}
    with open(filename, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line or line.startswith("ID"): # пропустим заголовок
                continue
            parts = line.split("\t")
            pid = int(parts[0])
            duration = int(parts[1])
            deps = parts[2].strip()
            if deps == "0":
                deps = []
            else:
                deps = list(map(int, deps.split(";")))
            processes[pid] = (duration, deps)
    return processes

def compute_finish_times(processes):
    finish_times = {}

    def dfs(pid):
        if pid in finish_times:
            return finish_times[pid]
        duration, deps = processes[pid]
        if not deps: # нет зависимостей
            start_time = 0
        else:
            start_time = max(dfs(d) for d in deps)
        finish_times[pid] = start_time + duration
        return finish_times[pid]

    for pid in processes:
        dfs(pid)

    return finish_times

processes = read_input("input.txt")
finish_times = compute_finish_times(processes)

# считаем, сколько процессов завершились за первые 17 мс
count = sum(1 for t in finish_times.values() if t <= 17)

print("Максимальное количество завершённых процессов за первые 17 мс:", count)

Таким образом, 12 — максимальное количество процессов, которые могут быть завершены за первые 17 мс.

Показать ответ

Источник: Демонстрационный вариант ЕГЭ — 2026
Сообщить об ошибке


Тест с похожими заданиями