Первый успешный ответ с пределом времени

Задача по программированию с проверкой онлайн

Сложность
Средняя
Языки
Python
JavaScript
TypeScript
Темы
Асинхронность и потоки
Исключения

Дан список заданий jobs и предел timeout в миллисекундах. Задание — асинхронная функция без аргументов: вызовите её (await job()), чтобы выполнить его; оно может завершиться ошибкой (исключением). Запустите все задания одновременно, в момент вызова функции, и верните значение того, которое первым завершилось успешно; ошибки не считаются ответом. Если несколько заданий успешно завершились в один и тот же момент, верните значение задания с меньшим индексом.

Верните -1, если до истечения timeout мс ни одно задание не завершилось успешно: все упали, остальные не успели или список пуст. Ответ нужен сразу: не ждите остальных заданий после первого успеха и после истечения предела. Значения заданий неотрицательны; в тестах ни одно задание не завершается ровно через timeout мс. В списке до 50 заданий.

Пример: задания возвращают 1 через 20 мс, падают через 5 мс и возвращают 3 через 10 мс; timeout = 100 → 3.


Источник: задача CodeShare

Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Ещё задачи

Все задачи для тренировки