DHBB 2026 - DX06 - 11 - Fence
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Bờm quyết định làm một hàng rào bên cạnh nhà mình. Anh ta thực hiện điều đó bằng cách đóng các miếng gỗ hình chữ nhật xuống đất. Với mỗi tấm gỗ, chúng ta biết chiều rộng, chiều cao cũng như khoảng cách từ mép trái của nó đến nhà Bờm.
Bờm say sưa làm hàng rào. Sau khi làm xong, anh ta bỗng nhận thấy hàng rào có một số tấm gỗ phủ chồng lên nhau (tức là có những tấm nếu nhìn từ ngoài vào nằm hoàn toàn bên trong tấm khác) và có những tấm vắt chéo nhau trông rất xấu.
Quan sát kỹ hàng rào mà mình vừa làm, Bờm nhận thấy rằng có thể sử dụng ít tấm gỗ hơn mà vẫn thu được hàng rào tương tự. Bờm quyết định sẽ dỡ đi những tấm gỗ đã đóng để với những tấm gỗ còn lại, hình ảnh hàng rào không thay đổi.
Viết chương trình tìm cách dỡ nhiều nhất các tấm gỗ đã đóng để hình ảnh hàng rào không thay đổi.
Input
Dòng đầu ghi số nguyên dương ~N~ ~(N \le 10^5)~ là số lượng các tấm gỗ đã đóng trong hàng rào của Bờm.
~N~ dòng tiếp theo, mỗi dòng mô tả một tấm với ba số nguyên ~X, W~ và ~H~ là khoảng cách từ mép trái tấm gỗ đến nhà, chiều rộng và chiều cao của nó.
Hai số liên tiếp trên cùng một dòng cách nhau bằng khoảng trống (space).
Output
Dòng đầu tiên ghi ~B~ là số lượng ít nhất các tấm gỗ cần giữ lại sao cho hình ảnh hàng rào không thay đổi.
Dòng thứ hai ghi ~B~ số nguyên cách nhau bởi khoảng trắng là số hiệu các tấm gỗ cần giữ lại. Nếu có nhiều phương án đúng bạn chỉ cần in ra một phương án bất kỳ.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~15\%~ | ~N \le 20~ |
| 2 | ~15\%~ | Mọi tấm có cùng chiều cao |
| 3 | ~20\%~ | Số độ cao phân biệt ~\le 3~ |
| 4 | ~40\%~ | Không có ràng buộc bổ sung |
Sample Input 1
6
15 8 4
10 8 3
25 3 7
3 9 5
1 5 3
7 2 2
Sample Output 1
5
1 2 3 4 5
Bình luận