Đổi quà kẹo (Candy Box, hard version)
Đề bài
Mô tả
Có viên kẹo trong một hộp. Viên kẹo thứ có loại ().
Bạn muốn chuẩn bị một hộp quà bằng cách chọn ra một số viên kẹo, với ràng buộc: số lượng kẹo của mỗi loại được đưa vào hộp quà phải đôi một khác nhau (ví dụ, một hộp quà có hai viên loại và hai viên loại là không hợp lệ).
Có thể có nhiều loại kẹo hoàn toàn không xuất hiện trong hộp quà. Cũng có thể không phải tất cả kẹo của một loại đều được lấy.
Ngoài ra, mỗi viên kẹo có một giá trị : nghĩa là bạn muốn giữ viên đó cho riêng mình, nghĩa là bạn sẵn sàng đưa nó vào hộp quà. Hai viên kẹo cùng loại vẫn có thể có khác nhau.
Bạn muốn hộp quà càng lớn càng tốt, nhưng đồng thời không muốn cho đi quá nhiều viên kẹo mà bạn muốn giữ lại. Vì vậy, trước tiên hãy tối đa hoá tổng số viên kẹo trong hộp quà; sau đó, trong tất cả các cách đạt được số kẹo lớn nhất, hãy tối đa hoá số viên kẹo có .
Bạn cần trả lời truy vấn độc lập.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số truy vấn.
- Với mỗi truy vấn:
- Dòng đầu chứa số nguyên là số viên kẹo.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và (, ).
Dữ liệu ra
Với mỗi truy vấn, in ra hai số nguyên trên một dòng:
- Số viên kẹo lớn nhất có thể đưa vào hộp quà.
- Số viên kẹo có lớn nhất, trong số các hộp quà đạt được số kẹo lớn nhất nói trên.
Ràng buộc
- ,
- Tổng trên tất cả các truy vấn không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 8 1 0 4 1 2 0 4 1 5 1 6 1 3 0 2 0 4 1 1 1 1 2 1 2 1 9 2 0 2 0 4 1 4 1 4 1 7 0 7 1 7 0 7 1 |
3 3 3 3 9 5 |
Truy vấn 1: lấy hai viên loại và một viên loại (số lượng và khác nhau). Cả ba đều có , nên đáp án là viên, trong đó viên có . |
| 1 6 1 0 1 0 1 0 2 1 2 1 2 1 |
5 3 | Loại có viên (đều ), loại có viên (đều ). Lấy viên loại và viên loại (số lượng và khác nhau): tổng viên, trong đó viên có . |
Bình luận