Tutte le sfide
Difficile 0 risolte 0% di accettazione

Numero Minimo di Corse in Ascensore

Raggruppa le persone nel minor numero possibile di corse in ascensore, rispettando il limite di peso.

Ogni persona deve effettuare esattamente una corsa. Qualsiasi gruppo può condividere una corsa se la somma dei loro pesi non supera la capacità. Le persone possono essere raggruppate liberamente; l'ordine di input non ha importanza. Minimizza il numero di corse.

Implementa elevator_rides(weights, capacity).

Input

weights: Il peso di ciascuna persona.

capacity: Il peso massimo totale consentito in una corsa.

Output

Restituisci il numero minimo di corse.

Vincoli

1 ≤ persone ≤ 20. 1 ≤ capacità ≤ 1.000.000.000. Ogni peso è compreso tra 1 e capacità.

Esempi

Esempio 1
Input:
weights = [3, 4, 5]
capacity = 7

Output atteso:
expected = 2
Input:
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;

Output atteso:
long long expected = 2;
Input:
long[] weights = new long[] {3, 4, 5};
long capacity = 7;

Output atteso:
long expected = 2;

Spiegazione

Manda insieme 3 + 4 e 5 da solo. Il peso totale 12 non può stare in una sola corsa con capacità 7.

Esempio 2
Input:
weights = [2, 2, 2]
capacity = 6

Output atteso:
expected = 1
Input:
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;

Output atteso:
long long expected = 1;
Input:
long[] weights = new long[] {2, 2, 2};
long capacity = 6;

Output atteso:
long expected = 1;

Spiegazione

Tutte e tre le persone stanno insieme perché 2 + 2 + 2 = 6.

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.