Problème
Afficher l’original (anglais)Chaque personne doit effectuer exactement un trajet. Un groupe peut partager un trajet si la somme de leurs poids ne dépasse pas la capacité maximale. Les regroupements sont libres ; l’ordre d’entrée n’a pas d’importance. Minimisez le nombre de trajets.
Implémentez elevator_rides(weights, capacity).
Entrée
weights : Le poids de chaque personne.
capacity : Le poids total maximal autorisé par trajet.
Sortie
Retournez le nombre minimal de trajets.
Contraintes
1 ≤ personnes ≤ 20. 1 ≤ capacité ≤ 1 000 000 000. Chaque poids est compris entre 1 et capacité.
Exemples
Entrée :
weights = [3, 4, 5]
capacity = 7
Sortie attendue :
expected = 2
Entrée :
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;
Sortie attendue :
long long expected = 2;
Entrée :
long[] weights = new long[] {3, 4, 5};
long capacity = 7;
Sortie attendue :
long expected = 2;
Explication
Envoyez 3 + 4 ensemble et 5 séparément. Le poids total 12 ne peut pas tenir en un seul trajet avec une capacité de 7.
Entrée :
weights = [2, 2, 2]
capacity = 6
Sortie attendue :
expected = 1
Entrée :
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;
Sortie attendue :
long long expected = 1;
Entrée :
long[] weights = new long[] {2, 2, 2};
long capacity = 6;
Sortie attendue :
long expected = 1;
Explication
Les trois personnes tiennent ensemble car 2 + 2 + 2 = 6.
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.