Trên một con phố có n khách sạn. Với mỗi khách sạn, bạn biết số lượng phòng trống hiện có. Nhiệm vụ của bạn là phân bổ phòng cho các đoàn khách du lịch. Yêu cầu là tất cả thành viên trong một đoàn phải ở cùng một khách sạn.
Các đoàn khách sẽ đến theo thứ tự lần lượt. Với mỗi đoàn, bạn biết số lượng phòng mà họ yêu cầu. Bạn luôn ưu tiên xếp đoàn khách vào khách sạn đầu tiên (tính từ bên trái) có đủ phòng. Sau khi một đoàn được xếp phòng, số lượng phòng trống của khách sạn đó sẽ giảm đi.
Nếu không có khách sạn nào còn đủ phòng cho đoàn khách, bạn sẽ từ chối và in ra 0.
Dữ liệu vào:
Dòng đầu tiên: hai số nguyên n và m
n → số lượng khách sạn
m → số lượng đoàn khách
Dòng thứ hai: n số nguyên h₁, h₂, ..., hₙ → số lượng phòng trống ban đầu của từng khách sạn.
Dòng cuối cùng: m số nguyên r₁, r₂, ..., rₘ → số lượng phòng yêu cầu của từng đoàn khách.
Dữ liệu ra:
In ra m số nguyên, số thứ i là:
Chỉ số của khách sạn mà đoàn khách thứ i được phân bổ.
In 0 nếu không có khách sạn nào đủ phòng.
Ràng buộc
1 ≤ n, m ≤ 2 * 10^5
1 ≤ hᵢ ≤ 10^9
1 ≤ rᵢ ≤ 10^9
Ví dụ :
Input:
8 5
3 2 4 1 5 5 2 6
4 4 7 1 1
Output:
3 5 0 1 1
Bình luận