Trang bị áo giáp
Đề bài
Mô tả
Có người lính và chiếc áo giáp. Người lính thứ mong muốn áo giáp cỡ , nhưng có thể mặc bất kỳ áo giáp nào có cỡ trong đoạn với là hai số nguyên không âm cho trước. Chiếc áo giáp thứ có cỡ .
Mỗi áo giáp chỉ được dùng cho tối đa một người lính, và mỗi người lính cũng chỉ mặc tối đa một áo giáp. Hãy chia áo giáp sao cho số người lính được trang bị áo giáp là lớn nhất, và in ra một phương án ghép cặp đạt được số lượng đó.
Dữ liệu vào
- Dòng 1: bốn số nguyên , , , .
- Dòng 2: số nguyên theo thứ tự không giảm.
- Dòng 3: số nguyên theo thứ tự không giảm.
Dữ liệu ra
- Dòng đầu: số nguyên — số lượng người lính được trang bị áo giáp lớn nhất.
- dòng tiếp theo, mỗi dòng gồm hai số nguyên nghĩa là người lính số mặc áo giáp số . Các phải đôi một khác nhau, các cũng phải đôi một khác nhau.
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 |
|---|---|---|
| 5 3 0 0 1 2 3 3 4 1 3 5 |
2 1 1 3 2 |
Vì nên áo giáp phải khớp đúng cỡ. Người lính 1 (cỡ 1) ⟶ áo giáp 1; người lính 3 (cỡ 3) ⟶ áo giáp 2. Áo giáp 3 (cỡ 5) không khớp ai. Có thể đổi người lính 3 thành người lính 4 vì cả hai đều cỡ 3. |
| 3 3 2 2 1 5 9 3 5 7 |
3 1 1 2 2 3 3 |
Mọi người lính đều mặc vừa áo giáp tương ứng vì độ chênh không quá 2. |
Bình luận