IOI 2013 - Robot
Xem PDFCậu em nhỏ của Marita thường bỏ bừa bãi đồ chơi trên sàn phòng khách. May mắn là Marita đã chế tạo các robot đặc biệt để dọn đồ chơi. Cô cần bạn giúp xác định robot nào dọn đồ chơi nào.
Có \(T\) đồ chơi. Đồ chơi \(i\) có trọng lượng nguyên W[i] và kích thước nguyên S[i]. Có hai loại robot:
- \(A\) robot yếu. Robot yếu \(i\) có hạn chế trọng lượng
X[i], chỉ dọn được đồ chơi có trọng lượng nhỏ hơn hẳnX[i]. Kích thước đồ chơi là tùy ý. - \(B\) robot nhỏ. Robot nhỏ \(i\) có hạn chế kích thước
Y[i], chỉ dọn được đồ chơi có kích thước nhỏ hơn hẳnY[i]. Trọng lượng đồ chơi là tùy ý.
Mỗi robot mất một phút để dọn một đồ chơi. Các robot khác nhau có thể đồng thời dọn các đồ chơi khác nhau.
Hãy xác định liệu các robot có thể dọn sạch tất cả đồ chơi hay không. Nếu có, hãy tìm thời gian nhỏ nhất để hoàn thành công việc.
Cài đặt
Bạn cần nộp một tệp cài đặt hàm C/C++ sau và phải dùng #include "robots.h":
int putaway(int A, int B, int T,
int X[], int Y[], int W[], int S[]);
Dữ liệu vào
A là số robot yếu, B là số robot nhỏ và T là số đồ chơi. X là mảng độ dài \(A\) chứa hạn chế trọng lượng của các robot yếu; Y là mảng độ dài \(B\) chứa hạn chế kích thước của các robot nhỏ. W và S là các mảng độ dài \(T\), lần lượt chứa trọng lượng và kích thước của các đồ chơi. Chỉ số của các phần tử bắt đầu từ \(0\).
Dữ liệu ra
Hàm putaway trả về số phút nhỏ nhất cần để dọn sạch tất cả đồ chơi, hoặc \(-1\) nếu không thể dọn sạch.
Ràng buộc
- Giới hạn thời gian: 3 giây.
- Giới hạn bộ nhớ: 64 MiB.
- \(1 \le T \le 1\,000\,000\).
- \(0 \le A,B \le 50\,000\) và \(1 \le A+B\).
- \(1 \le X[i],Y[i],W[i],S[i] \le 2\,000\,000\,000\) trên các chỉ số hợp lệ của từng mảng.
Phân nhóm
Mỗi nhóm tuân theo các ràng buộc chung và các điều kiện bổ sung sau.
| Nhóm | Điểm | Điều kiện bổ sung |
|---|---|---|
| 1 | 14 | \(T=2\) và \(A+B=2\): có đúng hai đồ chơi và hai robot. |
| 2 | 14 | \(B=0\): tất cả robot đều là robot yếu. |
| 3 | 25 | \(T \le 50\) và \(A+B \le 50\). |
| 4 | 37 | \(T \le 10\,000\) và \(A+B \le 1\,000\). |
| 5 | 10 | Không có điều kiện bổ sung. |
Trình chấm mẫu
Trình chấm mẫu đọc tệp robots.in theo định dạng:
- Dòng 1:
A B T. - Dòng 2:
X[0] ... X[A-1]. - Dòng 3:
Y[0] ... Y[B-1]. - \(T\) dòng tiếp theo: mỗi dòng chứa
W[i] S[i], theo thứ tự \(i=0,\ldots,T-1\).
Nếu \(A=0\) hoặc \(B=0\), dòng tương ứng (dòng 2 hoặc dòng 3) là dòng rỗng.
Ví dụ
Ví dụ 1
Dữ liệu vào
3 2 10
6 2 9
4 7
4 6
8 5
2 3
7 9
1 8
5 1
3 3
8 7
7 6
10 5
Giá trị trả về
3
Giải thích
Các tham số là A = 3, B = 2, T = 10, X = [6, 2, 9], Y = [4, 7], W = [4, 8, 2, 7, 1, 5, 3, 8, 7, 10] và S = [6, 5, 3, 9, 8, 1, 3, 7, 6, 5].
| Chỉ số đồ chơi | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| Trọng lượng | 4 | 8 | 2 | 7 | 1 | 5 | 3 | 8 | 7 | 10 |
| Kích thước | 6 | 5 | 3 | 9 | 8 | 1 | 3 | 7 | 6 | 5 |
Thời gian nhỏ nhất là ba phút, với một cách phân công như sau:
| Thời điểm | Robot yếu 0 | Robot yếu 1 | Robot yếu 2 | Robot nhỏ 0 | Robot nhỏ 1 |
|---|---|---|---|---|---|
| Phút thứ nhất | Đồ chơi 0 | Đồ chơi 4 | Đồ chơi 1 | Đồ chơi 6 | Đồ chơi 2 |
| Phút thứ hai | Đồ chơi 5 | Nghỉ | Đồ chơi 3 | Nghỉ | Đồ chơi 8 |
| Phút thứ ba | Nghỉ | Nghỉ | Đồ chơi 7 | Nghỉ | Đồ chơi 9 |
Ví dụ 2
Các tham số
A = 2
B = 1
T = 3
X = [2, 5]
Y = [2]
W = [3, 5, 2]
S = [1, 3, 2]
Giá trị trả về
-1
Giải thích
| Chỉ số đồ chơi | 0 | 1 | 2 |
|---|---|---|---|
| Trọng lượng | 3 | 5 | 2 |
| Kích thước | 1 | 3 | 2 |
Không robot nào dọn được đồ chơi có trọng lượng \(5\) và kích thước \(3\), nên không thể dọn sạch toàn bộ đồ chơi.
Kỳ thi:
- IOI 2013 - Ngày 2 (10 Tháng bảy, 2013)
Bình luận