Sửa hàng rào (REPAIR-11QB2022)

Xem dạng PDF

Gửi bài giải

Điểm: 2,50 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: REPAIR.INP
Output: REPAIR.OUT

Dạng bài
Ngôn ngữ cho phép
C, C++, C++ (Themis), Java, Pascal, Python, Scratch

Hàng rào của trang trại X có ~n~ đoạn được đánh số thứ tự từ ~1~ đến ~n~, các đoạn hàng rào có chiều rộng như nhau và đoạn thứ ~i~ có chiều cao là ~a_i~.

Do muốn tăng thêm chiều cao của hàng rào nên chủ trang trại quyết định ghép thêm các tấm ván vào một số đoạn của hàng rào. Trong trang trại có sẵn ~m~ tấm ván được xếp chồng lên nhau và đánh chỉ số từ ~1~ đến ~m~, trong đó các tấm ván có chỉ số lớn hơn được đặt bên dưới các tấm ván có chỉ số nhỏ hơn. Trong các tấm ván này, tấm thứ ~j~ có độ dài ~b_j~ và có chiều rộng bằng chiều rộng của các đoạn hàng rào.

Khi chọn tấm ván thứ ~j~ ghép vào một đoạn hàng rào nào đó để tăng chiều cao, ta phải làm như sau:

  • Bỏ đi tất cả các tấm ván xếp ở phía trên nó (có thể không bỏ tấm nào).
  • Lấy tấm ván đó gắn lên phía trên đoạn hàng rào cần ghép (khi đó, chiều cao mới của đoạn hàng rào sẽ bằng chiều cao trước đó cộng với độ dài của tấm ván vừa gắn lên).
  • Các tấm ván có chỉ số lớn hơn không được ghép vào phía trước đoạn hàng rào đã được ghép tấm ván có chỉ số nhỏ hơn nó. Không dùng lại các tấm ván đã bỏ đi trước đó và mỗi đoạn rào có thể không ghép hoặc ghép thêm tối đa một tấm ván.
Yêu cầu:

Hãy tìm chiều cao lớn nhất của hàng rào có thể đạt được sau khi thực hiện xong việc ghép như trên. Chiều cao của hàng rào ở đây được định nghĩa là chiều cao của đoạn hàng rào thấp nhất.

Dữ liệu vào:

Cho trong tệp REPAIR.INP có cấu trúc như sau:

  • Dòng 1 ghi số nguyên dương ~n~ (~1 \leq n \leq 10^5~).
  • Dòng 2 ghi ~n~ số nguyên dương ~a_i~. Các số cách nhau một ký tự trắng (~1 \leq i \leq n~, ~0 \leq a_i \leq 10^8~).
  • Dòng 3 ghi số nguyên dương ~m~ (~1 \leq m \leq 10^5~).
  • Dòng 4 ghi ~m~ số nguyên dương ~b_j~. Các số cách nhau một ký tự trắng (~1 \leq j \leq m~, ~0 \leq b_j \leq 10^8~).
Dữ liệu ra

Ghi ra tệp văn bản REPAIR.OUT một số nguyên duy nhất là kết quả tìm được.

Ví dụ:

Input:REPAIR.INP

6
2 5 4 1 7 5
7
2 3 1 3 2 4 6

Input:REPAIR.INP

5

Giải thích: Để đạt được độ cao lớn nhất, có thể ghép như sau:

  • Tấm ván thứ 2 ghép vào đoạn hàng rào thứ 1
  • Tấm thứ 3 ghép vào đoạn thứ 3
  • Tấm thứ 6 ghép vào đoạn thứ 4

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.