Đề bài
Xem bản gốc (English)Mỗi người phải đi đúng một lần. Bất kỳ nhóm nào cũng có thể đi cùng nhau nếu tổng trọng lượng của họ không vượt quá capacity. Có thể nhóm lại tự do; thứ tự đầu vào không quan trọng. Hãy tối thiểu hóa số chuyến đi.
Cài đặt hàm elevator_rides(weights, capacity).
Đầu vào
weights: Trọng lượng của từng người.
capacity: Tổng trọng lượng tối đa cho mỗi chuyến đi.
Đầu ra
Trả về số chuyến đi tối thiểu.
Ràng buộc
1 ≤ số người ≤ 20. 1 ≤ capacity ≤ 1.000.000.000. Mỗi trọng lượng nằm trong khoảng từ 1 đến capacity.
Ví dụ
Đầu vào:
weights = [3, 4, 5]
capacity = 7
Kết quả mong đợi:
expected = 2
Đầu vào:
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;
Kết quả mong đợi:
long long expected = 2;
Đầu vào:
long[] weights = new long[] {3, 4, 5};
long capacity = 7;
Kết quả mong đợi:
long expected = 2;
Giải thích
Gửi 3 + 4 cùng nhau và 5 đi riêng. Tổng trọng lượng 12 không thể đi trong một chuyến với sức chứa 7.
Đầu vào:
weights = [2, 2, 2]
capacity = 6
Kết quả mong đợi:
expected = 1
Đầu vào:
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;
Kết quả mong đợi:
long long expected = 1;
Đầu vào:
long[] weights = new long[] {2, 2, 2};
long capacity = 6;
Kết quả mong đợi:
long expected = 1;
Giải thích
Cả ba người đều đi cùng nhau được vì 2 + 2 + 2 = 6.
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.