trang chủ / đề bài / dhbb23_lhp_10_b

Cây sồi

Đề bài

Mô tả

Từ cổng vào đến tòa chính của Bộ Quốc phòng có trồng một hàng n cây sồi (2≤n≤200). Các cây được đánh số từ 1 đến n từ trái sang phải.

Để chuẩn bị đón Tổng tham mưu trưởng đến nhậm chức, Bộ trưởng ra lệnh chặt bớt một số cây để dãy các cây còn lại thể hiện sắc nét hơn tính kỷ luật của một tổ chức quân sự. Chỉ thị nội bộ chỉ cho phép chặt một cây trong hai trường hợp:

  • Cây sát ngay bên phải và cây sát ngay bên trái thực sự thấp hơn cây này,
  • Cây sát ngay bên phải và cây sát ngay bên trái thực sự cao hơn cây này.

Các cây được chặt lần lượt từng cây một. "Cây sát ngay bên trái/phải" là cây gần nhất về bên trái/phải còn chưa bị chặt tại thời điểm chặt, nên thứ tự chặt có ảnh hưởng. "Thực sự thấp hơn/cao hơn" là so sánh ngặt: hai cây cao bằng nhau thì không cây nào thấp hơn cây kia. Như vậy, theo chỉ thị cây bên trái nhất và cây bên phải nhất của hàng sẽ không bị chặt.

Bộ trưởng yêu cầu lên kế hoạch chặt để trong hàng cây còn lại, mỗi cây sẽ không thấp hơn tất cả các cây bên trái nó trong hàng (tức là độ cao các cây còn lại không giảm từ trái sang phải). Là một người yêu thiên nhiên, Bộ trưởng yêu cầu phải tìm cách chặt ít cây nhất.

Yêu cầu: Cho n và độ cao hi của cây thứ i (1≤hi≤1000,1≤i≤n). Hãy xác định xem có thể chặt để tạo ra dãy cây như mong muốn hay không, nếu có thì chỉ ra số cây và các cây cần chặt.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n.
  • Dòng thứ 2 chứa n số nguyên h1,h2,…,hn.

Dữ liệu ra

Nếu không có phương án chặt thì in ra số −1. Trong trường hợp ngược lại:

  • Dòng đầu tiên in ra số nguyên k: số cây cần chặt (nhỏ nhất).
  • Mỗi dòng trong k dòng sau chứa một số nguyên là số hiệu (theo đánh số ban đầu) của cây cần chặt, theo đúng thứ tự chặt. Mỗi lần chặt phải thỏa mãn chỉ thị với hàng cây tại thời điểm đó.

Nếu có nhiều phương án chặt ít cây nhất, in ra phương án bất kỳ. Nếu dãy ban đầu đã thỏa mãn thì in ra 0.

Ràng buộc

  • 2≤n≤200.
  • 1≤hi≤1000.

Ví dụ

Input Output Giải thích
5
3 2 4 8 5
2
2
4
Chặt cây 2 (cao 2, hai bên là 3 và 4 đều cao hơn), rồi cây 4 (cao 8, hai bên là 4 và 5 đều thấp hơn). Còn lại 3,4,5. Thứ tự chặt 4 rồi 2 cũng đúng.
2
5 3
-1 Ví dụ thêm. Hai cây ở hai đầu hàng không bao giờ bị chặt, mà 5>3.
4
1 3 3 2
-1 Ví dụ thêm. Cây 2 (cao 3) có hai hàng xóm cao 1 và 3, cây 3 (cao 3) có hai hàng xóm cao 3 và 2: vì so sánh là ngặt nên không cây nào chặt được, mà dãy 1,3,3,2 giảm ở cuối.
5
2 9 1 9 3
3
4
3
2
Ví dụ thêm. Chặt cây 4 (cao 9, hai hàng xóm cao 1 và 3), hàng thành 2,9,1,3; chặt cây 3 (cao 1, hai hàng xóm cao 9 và 3), hàng thành 2,9,3; chặt cây 2. Còn lại 2,3. Nếu chặt cây 3 trước thì hai cây cao 9 đứng cạnh nhau và không chặt tiếp được cây nào trong số đó.
3
2 2 2
0 Ví dụ thêm. Dãy ban đầu đã không giảm (các cây bằng nhau được phép).

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0