№22 · решено
Через сколько закончится всё
Таблица процессов: ID, время (мс), зависимости через «;» (0 — нет). Процесс стартует сразу после окончания самого позднего из тех, от кого зависит. Нумерация мс с 1. Найди минимальное время, через которое завершится выполнение всей совокупности процессов, если независимые процессы идут параллельно.
Источник: ФИПИ, № 29352
Скачать файл: task_29352_A.ods. Решай в Excel или LibreOffice.
Ответвпиши то, что получилось
Показать разбор
- Открой файл. Раздели третий столбец по «;» на отдельные столбцы: Данные → Текст по столбцам, разделитель «;». Пустые ячейки зависимостей заполни нулём.
- Вставь над процессами строку с ID 0 и нулями во всех столбцах. Тогда ВПР на зависимость 0 вернёт конец 0, а не ошибку.
- Добавь столбцы «начало» и «конец». В начале напиши =МАКС(ВПР(зав1;таблица;столбец_конца;0);ВПР(зав2;таблица;столбец_конца;0);…) по одному ВПР на каждый столбец зависимостей. Таблицу закрепи через $, последний аргумент ВПР равен 0.
- В конце напиши = начало + время. Протяни обе формулы вниз. Если программа пишет про циклическую ссылку, включи итеративные вычисления в настройках.
- Всё закончится, когда закончится самый поздний процесс. Возьми =МАКС(конец) по всему столбцу концов.