Rectangle Blocks 2

Xem dạng PDF

Gửi bài giải


Điểm: 100,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++

Đây là version 2 của bài Rectangle Blocks(lưu ý ràng buộc dữ liệu)

A có một hàng rào gồm ~n~ cây cọc gỗ xếp liên tiếp nhau được đánh số từ ~1~ đến ~n~. Chiều cao của các cây cọc lần lượt là ~a_1, a_2, ..., a_n~. A có rất nhiều miếng dán hình chữ nhật với đủ mọi loại kích thước. Để trang trí, anh muốn dán kín hàng rào trên bằng các miếng dán này. Bạn hãy giúp A tìm cách dán sao cho sử dụng ít hình chữ nhật nhất nhé. Các miếng dán không được đè lên nhau và không được dán dư vào khoảng trống, không cắt hình chữ nhật thành hình khác (hình dưới).

Imgur

Input

  • Dòng thứ nhất là số nguyên n ~(1 \le n \le 368368) ~

  • Dòng thứ hai gồm n số ~a_1, a_2, ..., a_n~, mỗi số cách nhau một khoảng trắng ~(0 \le a_i \le 10^9)~

Output

  • Là số lượng ít nhất các miếng dán hình chữ nhật cần dùng.

Sample Input 1

6
5 4 3 2 3 2

Sample Output 1

5

Initial problem: NTUCoder


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.