JOI 2021 - Growing Vegetables is Fun 4

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1400 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bitaro thích làm vườn. Hiện cậu đang trồng một loại cây gọi là cỏ Biba trong vườn nhà. Có \(N\) cây cỏ Biba được trồng thành một hàng từ tây sang đông, đánh số từ \(1\) đến \(N\) theo thứ tự đó. Hiện tại, chiều cao của cây thứ \(i\) (\(1 \le i \le N\)) là \(A_i\).

Nhờ được cải tiến giống, mỗi lần được tưới nước, một cây cỏ Biba sẽ cao thêm \(1\) đơn vị. Để khu vườn trông đẹp hơn, Bitaro muốn tưới nước một số lần sao cho điều kiện sau được thỏa mãn:

  • Gọi \(B_i\) là chiều cao của cây thứ \(i\) sau khi hoàn thành tất cả các lần tưới. Phải tồn tại một số nguyên \(k\) (\(1 \le k \le N\)) sao cho \(B_j < B_{j+1}\) với mọi \(1 \le j \le k-1\), và \(B_j > B_{j+1}\) với mọi \(k \le j \le N-1\).

Tuy nhiên, Bitaro vụng về nên mỗi lần chỉ có thể tưới đồng thời tất cả các cây trong một đoạn liên tiếp. Cụ thể, trong một lần tưới, cậu chọn hai số nguyên \(L,R\) (\(1 \le L \le R \le N\)) rồi tưới các cây \(L,L+1,\ldots,R\).

Cho số lượng cây cỏ Biba và chiều cao hiện tại của chúng, hãy tìm số lần tưới ít nhất để thỏa mãn điều kiện trên.

Dữ liệu vào

Dữ liệu được cho từ đầu vào chuẩn:

N
A_1 A_2 ... A_N

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

In ra một dòng chứa số lần tưới ít nhất cần thực hiện.

Ràng buộc

  • \(2 \le N \le 200\,000\).
  • \(1 \le A_i \le 1\,000\,000\,000\) với mọi \(1 \le i \le N\).

Phân nhóm

  • Nhóm 1 (40 điểm): \(N \le 2000\).
  • Nhóm 2 (60 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
5
3 2 2 3 1
Output
3
Giải thích

Có thể thỏa mãn điều kiện bằng ba lần tưới như sau:

  • Chọn \(L=2\), \(R=5\) và tưới các cây \(2,3,4,5\). Chiều cao các cây từ tây sang đông trở thành \(3,3,3,4,2\).
  • Chọn \(L=2\), \(R=3\) và tưới các cây \(2,3\). Chiều cao các cây trở thành \(3,4,4,4,2\).
  • Chọn \(L=3\), \(R=3\) và tưới cây \(3\). Chiều cao các cây trở thành \(3,4,5,4,2\).

Không thể thỏa mãn điều kiện bằng ít hơn ba lần tưới, nên đáp án là \(3\).

Ví dụ 2

Input
5
9 7 5 3 1
Output
0
Giải thích

Điều kiện đã được thỏa mãn ngay từ đầu, nên không cần tưới lần nào. Đáp án là \(0\).

Ví dụ 3

Input
2
2021 2021
Output
1
Giải thích

Có thể thỏa mãn điều kiện bằng một lần tưới: chọn \(L=1\), \(R=1\) để tưới cây \(1\), hoặc chọn \(L=2\), \(R=2\) để tưới cây \(2\).

Ví dụ 4

Input
8
12 2 34 85 4 91 29 85
Output
93

Nguồn

JOI 2020/2021, vòng chung kết quốc gia, ngày 14/02/2021. Đề gốc của Ủy ban Olympic Tin học Nhật Bản: tiếng Anh, tiếng Nhật. Bản dịch theo giấy phép CC BY-SA 4.0.

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: