(Đề thi Olympic sinh viên toàn quốc cho khối không chuyên tin năm 1995)
Các công việc cần thực hiện của một dự án đợc ký hiệu là 1, 2, ..., N (N<100). Thời gian cần thiết để thực hiện các công việc trên lần lợt là x1, x2, ..., xN. Tuy nhiên tất cả các công việc trên không thể tiến hành một cách đồng thời, có một số công việc bắt buộc phải đợc tiến hành khi một số công việc khác đã kết thúc. Dữ liệu của bài toán đợc ghi trong tệp có tên INPUT.TXT có dạng sau:
- Dòng đầu tiên của tệp ghi số N.
- N dòng tiếp theo lần lợt ghi rõ các thông số sau: + Số thứ tự của công việc.
+ Thời gian xi cần thiết để thực hiện công việc này.
+ Danh sách các công việc bắt buộc phải kết thúc khi công việc này bắt đầu. Số thứ tự của các công việc này đợc ghi cách nhau bởi dấu cách.
Ví dụ của một tệp INPUT.TXT nh sau: 8 1 1 2 15 1 3 25 1 4 10 2 3 5 2 1 6 45 1 5 7 10 6
8 1 7
Giả sử khả năng huy động nhân lực để thực hiện các công việc trên là không hạn chế. Hãy chỉ ra một phơng án thực hiện các công việc trên sao cho sau ít thời gian nhất sẽ hoàn thành toàn bộ các công việc của dự án.
Kết quả đợc lu trong tệp có tên OUTPUT.TXT có dạng sau: - Dòng đầu tiên ghi tổng số thời gian sẽ hoàn thành.
- Các dòng tiếp theo lần lợt ghi kế hoạch thực hiện nh sau:
Ngày thực hiện Các công việc thực hiện
Trong đó ngày thực hiện là ngày bắt đầu tiến hành, các công việc thực hiện đợc ghi cách nhau bởi dấu phảy.
- Dòng cuối cùng ghi ngày kết thúc toàn bộ các công việc. Trong ví dụ nêu ở trên, lịch sắp xếp công việc sẽ có dạng sau: Tổng thời gian thực hiện: 60 ngày.
1 1 21 2,3,5 4 6 26 4 49 7 59 8 60 Kết thúc.