Tập tài liệu

Đề bài

Mô tả

Polycarpus đã làm việc tại phòng phân tích của công ty "F.R.A.U.D." được n ngày. Anh ấy cần lập một loạt báo cáo về hiệu quả kinh doanh của công ty trong n ngày qua. Thông tin chính trong báo cáo của ngày thứ i là giá trị ai — lợi nhuận của công ty trong ngày đó. Nếu ai<0, công ty bị lỗ trong ngày thứ i.

Polycarpus cần sắp xếp các báo cáo hằng ngày vào các tập tài liệu. Mỗi tập chứa dữ liệu của một số ngày liên tiếp. Thông tin của mỗi ngày phải nằm trong đúng một tập. Cụ thể, thông tin của một số ngày đầu tiên được đặt vào tập thứ nhất, thông tin của một số ngày tiếp theo được đặt vào tập thứ hai, và cứ thế tiếp tục.

Mỗi ngày sếp đọc đúng một tập. Nếu một tập chứa từ 3 báo cáo trở lên của những ngày công ty bị lỗ (tức ai<0), ông sẽ nổi giận.

Hãy giúp Polycarpus chia các báo cáo thành các tập sao cho không tập nào chứa từ 3 ngày lỗ trở lên, đồng thời số tập là nhỏ nhất.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n — số ngày.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — lợi nhuận của từng ngày.

Dữ liệu ra

  • Dòng đầu in ra số nguyên k — số tập tài liệu ít nhất cần dùng.
  • Dòng thứ hai in ra k số nguyên dương b1,b2,,bk, trong đó bj là số báo cáo nằm trong tập thứ j. Phải có b1+b2++bk=n.

Nếu có nhiều cách chia tối ưu, in ra một cách bất kỳ.

Ràng buộc

  • 1n100
  • |ai|100

Ví dụ

Input Output Giải thích
5
0 -1 100 -1 0
1
5
Toàn bộ 5 ngày chỉ có 2 ngày lỗ, có thể xếp chung vào một tập.
11
1 2 3 -4 -5 -6 5 -5 -6 -7 6
3
5 3 3
Một cách chia hợp lệ: 1 2 3 -4 -5 | -6 5 -5 | -6 -7 6. Mỗi tập có đúng 2 ngày lỗ.
3
-3 -4 -5
2
2 1
Cả 3 ngày đều lỗ nên không thể nhồi vào một tập; chia thành hai tập, ví dụ -3 -4-5.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0