K món với giá một món

Đề bài

Mô tả

Trong cửa hàng có N món hàng, món thứ i có giá ai đồng. Bạn có p đồng và muốn mua được càng nhiều món càng tốt.

Cửa hàng đang có chương trình khuyến mãi "k món với giá của một món". Bạn có thể thực hiện lặp lại một trong hai thao tác sau, số lần tùy ý:

  • Mua một món i bất kỳ (nếu số tiền hiện có ai), số tiền giảm đi ai.
  • Chọn một món i (nếu số tiền hiện có ai) cùng với đúng k1 món khác có giá không vượt quá ai, rồi mua cả k món đó. Số tiền chỉ giảm đi ai (giá của món đắt nhất trong nhóm).

Mỗi món chỉ được mua nhiều nhất một lần. Hãy tìm số món tối đa bạn có thể mua.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa ba số nguyên N, p, k.
    • Dòng thứ hai chứa N số nguyên a1,a2,,aN.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng chứa số món tối đa có thể mua.

Ràng buộc

  • 1t104
  • 2kN2·105
  • 1p2·109
  • 1ai104
  • Tổng N trên tất cả các bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
8
5 6 2
2 4 3 5 7
5 11 2
2 4 3 5 7
3 2 3
4 2 6
5 2 3
10 1 3 9 2
2 10000 2
10000 10000
2 9999 2
10000 10000
4 6 4
3 2 3 2
5 5 3
1 2 2 1 2
3
4
1
1
2
0
4
5
Bộ 1: mua món giá 2 riêng lẻ (trả 2), rồi mua cặp giá 3 và 4 bằng khuyến mãi (trả 4). Tổng chi 6 đồng, được 3 món.
2
2 1 2
1 1
2 2000000000 2
1 1
2
2
Bộ 1: hai món đều giá 1, dùng khuyến mãi mua cả hai chỉ trả 1 đồng.

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