#783. Bài toán thu ngân (CASHIER)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Một siêu thị ở Tehran mở cửa 24 giờ mỗi ngày cần một số lượng thu ngân để đáp ứng nhu cầu. Giám đốc siêu thị thuê bạn để giải quyết vấn đề: Siêu thị cần số lượng thu ngân khác nhau vào các khoảng thời gian khác nhau trong ngày (ví dụ, lúc nửa đêm chỉ cần ít người, nhưng buổi chiều cần nhiều người) để phục vụ khách hàng tốt nhất. Ông ấy muốn thuê số lượng thu ngân ít nhất có thể.

Giám đốc đã cung cấp cho bạn số lượng thu ngân tối thiểu cần thiết cho mỗi giờ trong ngày: R(0), R(1), \cdots, R(23) . R(0) là số lượng tối thiểu từ nửa đêm đến 1:00 sáng, R(1) là từ 1:00 đến 2:00 sáng, v.v. Các dữ liệu này giống nhau cho mỗi ngày. Có N người nộp đơn xin việc, mỗi người nộp đơn i sẽ bắt đầu làm việc từ một thời điểm t_i cụ thể và làm việc liên tục đúng 8 giờ trong vòng 24 giờ. Tức là, nếu người nộp đơn thứ i được nhận, họ sẽ làm việc 8 giờ liên tục bắt đầu từ t_i .

Hãy viết chương trình nhập vào R(i) và danh sách các t_i (tất cả đều là số nguyên không âm), tính toán số lượng thu ngân tối thiểu cần thuê để thỏa mãn các ràng buộc trên. Tại mỗi thời điểm, số lượng thu ngân đang làm việc có thể nhiều hơn R(i) tương ứng.

Dữ liệu:

  • Dòng đầu tiên là số lượng bộ dữ liệu kiểm tra (test cases) T .
  • Đối với mỗi bộ dữ liệu:
    • Dòng đầu tiên chứa 24 số nguyên, biểu thị R(0), R(1), R(2), \cdots, R(23) .
    • Dòng tiếp theo là một số nguyên dương N , biểu thị số lượng người nộp đơn.
    • N dòng tiếp theo, mỗi dòng chứa một số nguyên t_i (thời điểm bắt đầu của người thứ i ).
  • Giữa hai bộ dữ liệu không có dòng trống.

Kết quả:

  • Với mỗi bộ dữ liệu, xuất một dòng chứa một số nguyên biểu thị số lượng thu ngân tối thiểu cần thuê. Nếu vô nghiệm, xuất No Solution.

Ví dụ:

Dữ liệu:

1
1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
5
0
23
22
1
10

Kết quả:

1

Giới hạn: 1\le T\le 20, 0\le N\le 1000, 0\le R(i)\le 1000, 0\le t_i\le 23 .