trang chủ / bài tập / candybox

Đổi quà kẹo (Candy Box, hard version)

Đề bài

Mô tả

n viên kẹo trong một hộp. Viên kẹo thứ i có loại ai (1ain).

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 1 và hai viên loại 2 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ị fi: fi=0 nghĩa là bạn muốn giữ viên đó cho riêng mình, fi=1 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ó fi 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ó fi=1.

Bạn cần trả lời q truy vấn độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên q là số truy vấn.
  • Với mỗi truy vấn:
    • Dòng đầu chứa số nguyên n là số viên kẹo.
    • n dòng tiếp theo, mỗi dòng chứa hai số nguyên aifi (1ain, 0fi1).

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ó fi=1 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

  • 1q2·105
  • 1n2·105
  • 1ain, 0fi1
  • Tổng n trên tất cả các truy vấn không vượt quá 2·105.

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 4 và một viên loại 5 (số lượng 21 khác nhau). Cả ba đều có fi=1, nên đáp án là 3 viên, trong đó 3 viên có fi=1.
1
6
1 0
1 0
1 0
2 1
2 1
2 1
5 3 Loại 23 viên (đều f=1), loại 13 viên (đều f=0). Lấy 3 viên loại 22 viên loại 1 (số lượng 32 khác nhau): tổng 5 viên, trong đó 3 viên có f=1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0