Phân công máy móc
Đề bài
Mô tả
Một công ty vừa nhận về cỗ máy giống hệt nhau và đang có công việc cần xử lý.
Công việc thứ bắt buộc phải bắt đầu đúng tại thời điểm , kéo dài đơn vị thời gian, và mang lại lợi nhuận nếu được hoàn thành. Không được phép dời lịch bắt đầu của bất kỳ công việc nào.
Mỗi cỗ máy đều có thể làm bất kỳ công việc nào, nhưng tại mỗi thời điểm chỉ làm được đúng một công việc. Nếu một cỗ máy nhận công việc , nó bận trong toàn bộ các thời điểm và không thể chuyển sang công việc khác trong khoảng đó. Ngay tại thời điểm cỗ máy đã rảnh và có thể nhận công việc mới.
Công ty không bắt buộc phải làm hết tất cả công việc. Hãy chọn ra một tập công việc có thể thực hiện được bằng cỗ máy sao cho tổng lợi nhuận thu được là lớn nhất.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số công việc và số cỗ máy.
- dòng tiếp theo, dòng thứ chứa ba số nguyên , , : thời điểm bắt đầu, thời gian thực hiện và lợi nhuận của công việc thứ .
Dữ liệu ra
In ra số nguyên , trong đó nếu công việc thứ được chọn và nếu ngược lại.
Nếu có nhiều cách chọn cùng đạt tổng lợi nhuận lớn nhất, in ra một cách bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 1 2 7 5 1 3 3 4 1 3 |
0 1 1 | Ba công việc chiếm các khoảng thời gian , và . Chỉ có một cỗ máy, mà công việc giao với cả hai công việc còn lại, nên hoặc chọn công việc (lợi nhuận ), hoặc chọn công việc rồi công việc (lợi nhuận ). Cách thứ hai tốt hơn. |
| 5 2 1 5 4 1 4 5 1 3 2 4 1 2 5 6 1 |
1 1 0 0 1 | Cỗ máy thứ nhất làm công việc (khoảng ). Cỗ máy thứ hai làm công việc (khoảng ), xong lúc đó đã rảnh nên nhận tiếp công việc (khoảng ). Tổng lợi nhuận , không cách nào tốt hơn. |
Bình luận