IOI 2010 - Cluedo
Xem PDFTiến sĩ Black đã bị sát hại. Thám tử Jill cần xác định thủ phạm, địa điểm và hung khí. Có 6 nghi phạm được đánh số từ 1 đến 6, 10 địa điểm được đánh số từ 1 đến 10 và 6 hung khí được đánh số từ 1 đến 6.
Jill liên tục đưa ra một bộ phỏng đoán gồm thủ phạm, địa điểm và hung khí. Mỗi bộ như vậy được gọi là một giả thuyết. Trợ lý Jack sẽ xác nhận hoặc bác bỏ từng giả thuyết. Nếu giả thuyết đúng, Jill hoàn tất công việc. Nếu giả thuyết sai, Jack chỉ ra rằng một trong ba thành phần thủ phạm, địa điểm hoặc hung khí không đúng.
Bạn cần cài đặt hàm Solve đóng vai Jill. Bộ chấm gọi Solve nhiều lần, mỗi lần với một vụ án mới. Trong mỗi lần gọi, Solve phải gọi hàm Theory(M, L, W) do bộ chấm cung cấp:
Mlà số hiệu nghi phạm,1 <= M <= 6;Llà số hiệu địa điểm,1 <= L <= 10;Wlà số hiệu hung khí,1 <= W <= 6.
Theory(M, L, W) trả về:
0nếu cả ba thành phần đều đúng;1nếu thủ phạm sai;2nếu địa điểm sai;3nếu hung khí sai.
Nếu có nhiều thành phần sai, Jack có thể tùy ý chọn một thành phần sai để báo lại; lựa chọn này không nhất thiết giống nhau giữa các lần gọi. Ngay khi Theory trả về 0, hàm Solve phải kết thúc.
Ví dụ
Giả sử thủ phạm là 2, địa điểm là 3 và hung khí là 4. Một chuỗi lời gọi hợp lệ có thể là:
| Lời gọi | Giá trị có thể trả về | Giải thích |
|---|---|---|
Theory(1, 1, 1) |
1, 2 hoặc 3 |
Cả ba thành phần đều sai |
Theory(3, 3, 3) |
1 hoặc 3 |
Chỉ địa điểm đúng |
Theory(5, 3, 4) |
1 |
Chỉ thủ phạm sai |
Theory(2, 3, 4) |
0 |
Cả ba thành phần đều đúng |
Các nhóm điểm
| Nhóm | Điểm | Giới hạn |
|---|---|---|
| 1 | 50 | Mỗi lần gọi Solve được gọi Theory không quá 360 lần. |
| 2 | 50 | Mỗi lần gọi Solve được gọi Theory không quá 20 lần. |
Trong mỗi lượt chấm, Solve có thể được gọi tối đa 100 lần với các đáp án khác nhau. Mọi biến trạng thái dùng trong Solve phải được khởi tạo lại cho từng lần gọi.
Chi tiết cài đặt
Bạn cần nộp một tệp C++ cài đặt hàm sau:
void Solve();
Tệp của bạn được biên dịch cùng cluedo.h. Tệp tiêu đề khai báo hàm do bộ chấm cung cấp:
int Theory(int M, int L, int W);
Chương trình của bạn không được định nghĩa hàm main.
Kỳ thi:
- IOI 2010 - Ngày 1 (16 Tháng 8., 2010)
Bình luận