Quay lại danh sách thử thách
Khó 0 đã giải Tỷ lệ chấp nhận 0%

Phân Bổ Phòng Khách Sạn

Phân bổ các nhóm khách đến theo thứ tự.

Phân bổ các nhóm khách đến theo thứ tự. Một nhóm phải ở hoàn toàn trong khách sạn sớm nhất còn đủ phòng trống. Trừ số lượng thành viên nhóm khỏi số phòng trống của khách sạn đó. Nếu không có khách sạn nào phù hợp, trả về 0 cho nhóm đó và giữ nguyên số phòng của tất cả khách sạn. Vị trí khách sạn bắt đầu từ 1.

Cài đặt hàm hotel_room_allocation(rooms, groups).

Đầu vào

rooms: Số phòng trống ban đầu của từng khách sạn, theo thứ tự ưu tiên.

groups: Kích thước các nhóm khách theo thứ tự đến.

Đầu ra

Trả về vị trí khách sạn được chọn cho mỗi nhóm, hoặc 0 nếu không thể xếp nhóm đó.

Ràng buộc

Có từ 1…200.000 khách sạn và 0…200.000 nhóm khách. Số phòng ban đầu của mỗi khách sạn từ 0…1.000.000.000. Kích thước mỗi nhóm từ 1…1.000.000.000. Nếu đầu vào nhóm khách rỗng thì trả về danh sách rỗng.

Ví dụ

Ví dụ 1
Đầu vào:
rooms = [3, 1, 4]
groups = [2, 3, 2]

Kết quả mong đợi:
expected = [1, 3, 0]
Đầu vào:
std::vector<long long> rooms = {3, 1, 4};
std::vector<long long> groups = {2, 3, 2};

Kết quả mong đợi:
std::vector<long long> expected = {1, 3, 0};
Đầu vào:
long[] rooms = new long[] {3, 1, 4};
long[] groups = new long[] {2, 3, 2};

Kết quả mong đợi:
long[] expected = new long[] {1, 3, 0};

Giải thích

Nhóm đầu tiên rời đi để lại [1, 1, 4]. Nhóm thứ hai sử dụng khách sạn số 3, còn lại [1, 1, 1]. Nhóm cuối cùng gồm 2 người không thể xếp vào bất kỳ khách sạn nào.

Ví dụ 2
Đầu vào:
rooms = [2, 2]
groups = [2, 2]

Kết quả mong đợi:
expected = [1, 2]
Đầu vào:
std::vector<long long> rooms = {2, 2};
std::vector<long long> groups = {2, 2};

Kết quả mong đợi:
std::vector<long long> expected = {1, 2};
Đầu vào:
long[] rooms = new long[] {2, 2};
long[] groups = new long[] {2, 2};

Kết quả mong đợi:
long[] expected = new long[] {1, 2};

Giải thích

Cả hai khách sạn đều đủ chỗ cho nhóm đầu tiên, nên chọn khách sạn số 1 (sớm hơn). Khách sạn này đầy, nên nhóm tiếp theo sử dụng khách sạn số 2.

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.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.