Đề bài
Vua có khu vườn hình bàn cờ với hàng và cột. Mỗi ô đặt một cây, mỗi cây có chiều cao riêng. Vua đưa cho trạng Tí các tấm lợp vuông kích thước để làm mái lọng và yêu cầu Tí bố cục lại khu vườn, đặt các cây chống mái lọng che mát cho toàn bộ khu vườn.
Đầu tiên, Tí quy hoạch vườn thành từng cụm nhỏ với kích thước vừa với một tấm lợp. Các cụm được đánh số tăng dần theo thứ tự từ trên xuống dưới và từ trái qua phải. Phần ở bìa dưới và bìa phải của khu vườn nếu không đủ kích thước vẫn được tính là một cụm. Ví dụ: khu vườn có kích thước được quy hoạch thành 6 cụm theo thứ tự:
| 1 | 3 | 5 |
|---|---|---|
| 2 | 4 | 6 |
Tiếp theo, Tí sắp xếp lại cây trong vườn theo chiều cao cây giảm dần, đặt từ trên xuống dưới và từ trái qua phải trong từng cụm. Bắt đầu từ cụm 1, đặt xong sang cụm 2, .. cho đến cụm cuối. Ví dụ:
Khu vườn có kích thước và chiều cao các cây ban đầu:
| 1 | 3 | 4 | 9 | 1 |
|---|---|---|---|---|
| 8 | 2 | 6 | 5 | 3 |
| 5 | 8 | 5 | 2 | 1 |
Chiều cao các cây sau khi sắp xếp:
| 9 | 8 | 5 | 3 | 1 |
|---|---|---|---|---|
| 8 | 6 | 4 | 3 | 1 |
| 5 | 5 | 2 | 2 | 1 |
Sau đó, Tí phải tính được chiều cao của các cây chống lọng. Cây chống lọng phải cao hơn chiều cao của cây cao nhất trong cụm đang che mát 1 đơn vị. Các cây chống lọng lắp đặt theo thứ tự cụm đã quy hoạch.
Tuy nhiên, nếu số hàng hoặc số cột của khu vườn là số lẻ thì các cụm ở bìa dưới hoặc bìa phải của khu vườn sẽ có phần mái lọng che luôn cả những cây ở hàng liền trên hoặc ở cột kế bên. Lúc này, khả năng sẽ có các tấm che chồng lên nhau. Nếu các cây chống lọng chồng lên nhau có chiều cao bằng nhau thì cây chống lọng lắp đặt sau phải tăng chiều cao thêm 1 đơn vị. Ví dụ xét khu vườn sau khi sắp xếp lại các cây như hình dưới.
| 8 | 5 |
|---|---|
| 8 | 3 |
| 2 | 1 |
Khu vườn cần đặt 2 cây chống lọng như sau:
- Cây chống lọng thứ nhất cao 9 (do che 4 cây có chiều cao: 8, 8, 5, 3 → chiều cao cây chống lọng thứ nhất là 8+1=9)
- Cây chống lọng thứ hai cao 10 (do che 4 cây có chiều cao: 8, 2, 3, 1 → chiều cao cây chống lọng thứ hai ban đầu là 8+1=9 nhưng do chồng lên cây chống lọng thứ nhất nên có chiều cao là 9+1=10)
Yêu cầu: Em hãy giúp trạng Tí sắp xếp lại vườn, cho biết số lượng tấm lợp lọng cần dùng và chiều cao của từng cây chống lọng.
Dữ liệu vàoCHEVUON.INP
Từ tập tin văn bản CHEVUON.INP, gồm:
- Dòng đầu tiên ghi 2 số nguyên dương tương ứng với số hàng và cột của vườn.
- dòng tiếp theo, mỗi dòng ghi số nguyên dương cho biết chiều cao của cây tại vị trí hàng , cột .
Kết quả raCHEVUON.OUT
Ra tập tin văn bản CHEVUON.OUT, gồm:
- dòng đầu tiên mỗi dòng ghi số nguyên dương lần lượt là chiều cao của các cây trong khu vườn sau khi đã sắp xếp lại.
- Dòng kế cuối ghi một số nguyên dương cho biết số tấm lợp lọng cần dùng.
- Dòng cuối cùng ghi số nguyên dương tương ứng với chiều cao của cây chống lọng theo thứ tự cụm đã đánh số.
Lưu ý: Các số trên cùng dòng cách nhau một khoảng trắng.
Ràng buộc
- ;
- .
Ví dụ
Ví dụ 1
2 2 3 6 5 4
6 4 5 3 1 7
Ví dụ 2
3 2 1 3 8 2 5 8
8 5 8 3 2 1 2 9 10