trang chủ / đề bài / voi11_tline

Hàng cây

Đề bài

Mô tả

Một trang trại lớn có n cây cảnh với độ cao khác nhau từng đôi một. Các cây này được xếp theo một hàng dọc. Ông chủ trang trại là một người có đầu óc thẩm mỹ nên hàng cây được bố trí có tính chất không đơn điệu sau đây: "Đi từ đầu hàng đến cuối hàng không có 3 cây (không nhất thiết phải liên tiếp) có chiều cao giảm dần."

Một hôm ông chủ mua thêm một cây cảnh mới có chiều cao lớn hơn chiều cao tất cả các cây đã có. Ông muốn xếp cây cảnh mới vào trong n+1 vị trí có thể của hàng cây đang có (vào vị trí đầu hàng, vị trí sau cây thứ nhất, vị trí sau cây thứ hai, ..., vị trí sau cây thứ n của hàng) sao cho hàng cây thu được vẫn thỏa mãn yêu cầu về tính không đơn điệu nêu trên.

Yêu cầu:

  • Hãy cho biết có bao nhiêu cách xếp cây cảnh cao nhất mới mua vào hàng cây sao cho vẫn đảm bảo điều kiện về tính không đơn điệu.
  • Giả sử mỗi ngày ông chủ muốn xếp n+1 cây đã có thành hàng cây đảm bảo yêu cầu về tính không đơn điệu và hai hàng cây của hai ngày khác nhau là không giống trùng nhau, hãy giúp ông chủ tính xem việc đó có thể diễn ra nhiều nhất là bao nhiêu ngày.

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên dương n và h tương ứng là số lượng cây và chiều cao của cây cao nhất. Biết rằng n≤105, h≤106.
  • Dòng thứ hai chứa n số nguyên dương (mỗi số đều nhỏ hơn h) tương ứng là dãy chiều cao của n cây được xếp ban đầu.

Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Dữ liệu ra

  • Dòng thứ nhất ghi một số nguyên là số cách sắp xếp cây cao nhất vào hàng cây.
  • Dòng thứ hai ghi một số nguyên là phần dư trong phép chia số ngày lớn nhất tìm được cho 109.

Ràng buộc

  • n≤105, h≤106.
  • Chiều cao các cây là các số nguyên dương nhỏ hơn h, khác nhau từng đôi một.
  • Hàng cây ban đầu không có 3 cây có chiều cao giảm dần.

Subtasks

  • Subtask 1 (50% số test): 2≤n≤15.
  • Subtask 2 (50% số test): 15<n≤105.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
2 2011
11 1
2
5
Cây mới cao 2011 chỉ xếp được sau cây thứ nhất hoặc cuối hàng; xếp ở đầu hàng thì 2011,11,1 giảm dần. Có 5 cách xếp 3 cây thành hàng không có 3 cây giảm dần.
4 10
2 4 1 3
3
42
Xếp cây mới ở đầu hàng thì 10,4,1 giảm dần; sau cây thứ nhất cũng vậy. Ba vị trí còn lại đều hợp lệ.

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