Chuẩn bị cho kỳ thi
Đề bài
Mô tả
Có lỗi (bug) cần được sửa và sinh viên có thể tham gia sửa lỗi. Lỗi thứ có độ phức tạp , còn sinh viên thứ có trình độ . Sinh viên chỉ có thể sửa lỗi nếu , và mỗi lỗi được sửa xong trong đúng một ngày.
Trong một ngày, mỗi sinh viên chỉ sửa được nhiều nhất một lỗi. Các lỗi độc lập với nhau nên nhiều sinh viên có thể làm việc song song. Sinh viên thứ đòi hỏi được cộng điểm để tham gia (không phụ thuộc vào việc anh ta sửa bao nhiêu lỗi); nếu một sinh viên không được chọn thì không tốn điểm nào.
Cần sửa tất cả các lỗi sao cho tổng số điểm cộng cho các sinh viên được chọn không vượt quá . Trong điều kiện đó, hãy tìm cách phân công để số ngày hoàn thành là nhỏ nhất (số ngày bằng số lỗi nhiều nhất mà một sinh viên phải sửa).
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- Dòng thứ hai chứa số nguyên — độ phức tạp của các lỗi.
- Dòng thứ ba chứa số nguyên — trình độ của các sinh viên.
- Dòng thứ tư chứa số nguyên — số điểm mỗi sinh viên đòi hỏi.
Dữ liệu ra
Nếu không thể sửa hết mọi lỗi (với ràng buộc tổng điểm ), in ra NO.
Ngược lại, in YES trên dòng đầu; dòng thứ hai in số nguyên, số thứ là chỉ số của sinh viên sửa lỗi thứ trong một phương án tối ưu (số ngày nhỏ nhất, tổng điểm không vượt quá ). Nếu có nhiều phương án tối ưu, in ra một phương án bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 5 1 3 1 2 2 1 3 5 3 6 |
NO | Sinh viên duy nhất có thể sửa lỗi độ phức tạp 3 là sinh viên 3 (trình độ 3, đòi 6 điểm). Muốn sửa hết trong ít ngày cần thêm sinh viên, nhưng mọi phương án hợp lệ đều vượt quá điểm. |
| 3 4 9 1 3 1 2 2 1 3 4 3 6 |
YES 2 3 2 3 |
Sinh viên 3 (trình độ 3) sửa lỗi 2 và 4 (độ phức tạp 3 và 2); sinh viên 2 (trình độ 1) sửa lỗi 1 và 3 (độ phức tạp 1 và 1). Hai người làm song song nên chỉ mất 2 ngày. Tổng điểm . |
| 3 4 10 2 3 1 2 2 1 3 4 3 6 |
YES 1 3 1 3 |
Sinh viên 1 (trình độ 2) sửa lỗi 1 và 3; sinh viên 3 (trình độ 3) sửa lỗi 2 và 4. Mất 2 ngày, tổng điểm . |
Bình luận