Tous les défis
Moyen 0 résolus 0 % de réussite

Temps de Production en Usine

Trouvez le temps le plus tôt auquel des machines parallèles peuvent terminer un nombre cible d’objets.

Toutes les machines démarrent à l’instant 0 et fonctionnent indépendamment. Une machine avec un temps t termine un objet après t secondes, un autre après 2t secondes, etc. Trouvez la première seconde entière où leur production cumulée atteint l’objectif.

Implémentez factory_machines(times, target).

Entrée

times : Nombre de secondes nécessaires pour fabriquer un objet sur chaque machine.

target : Nombre d’objets finis requis.

Sortie

Retournez le nombre minimal de secondes écoulées.

Contraintes

1 ≤ machines ≤ 200 000. Chaque temps et l’objectif sont compris entre 1 et 1 000 000 000. La réponse tient dans un entier signé 64 bits.

Exemples

Exemple 1
Entrée :
times = [2, 3]
target = 5

Sortie attendue :
expected = 6
Entrée :
std::vector<long long> times = {2, 3};
long long target = 5;

Sortie attendue :
long long expected = 6;
Entrée :
long[] times = new long[] {2, 3};
long target = 5;

Sortie attendue :
long expected = 6;

Explication

À la seconde 6, les machines ont produit 3 + 2 = 5 objets. À la seconde 5, elles n’en ont produit que 2 + 1 = 3.

Exemple 2
Entrée :
times = [4]
target = 3

Sortie attendue :
expected = 12
Entrée :
std::vector<long long> times = {4};
long long target = 3;

Sortie attendue :
long long expected = 12;
Entrée :
long[] times = new long[] {4};
long target = 3;

Sortie attendue :
long expected = 12;

Explication

Une machine termine son troisième objet à 3 × 4 = 12 secondes.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.