Khuyến mãi ghế đẩu
Đề bài
Mô tả
Một siêu thị có mặt hàng, mỗi mặt hàng là một chiếc ghế đẩu (loại ) hoặc một chiếc bút chì (loại ). Mặt hàng thứ có giá .
Siêu thị đang có chương trình khuyến mãi: nếu trong một giỏ hàng có ít nhất một chiếc ghế đẩu, thì mặt hàng rẻ nhất trong giỏ đó được giảm giá (giá của nó còn lại một nửa). Nếu có nhiều mặt hàng cùng có giá nhỏ nhất, chỉ một trong số chúng được giảm.
Bạn có giỏ hàng và muốn mua toàn bộ mặt hàng. Hãy phân phối tất cả mặt hàng vào các giỏ sao cho tổng số tiền phải trả (sau khi đã trừ khuyến mãi) là nhỏ nhất.
Lưu ý: phải dùng đúng cả giỏ, không giỏ nào được để trống. Mỗi giỏ có thể chứa số lượng ghế đẩu và bút chì tùy ý.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — số mặt hàng và số giỏ.
- dòng tiếp theo, dòng thứ chứa hai số nguyên và — giá và loại của mặt hàng thứ (: ghế đẩu, : bút chì).
Dữ liệu ra
- Dòng đầu in một số thực với đúng một chữ số sau dấu chấm — tổng số tiền nhỏ nhất sau khuyến mãi.
- dòng tiếp theo, mỗi dòng mô tả một giỏ theo dạng , trong đó là số mặt hàng trong giỏ và là chỉ số của các mặt hàng được xếp vào giỏ đó. Các mặt hàng được đánh số từ đến theo thứ tự nhập vào.
Mỗi mặt hàng phải thuộc đúng một giỏ. Có thể in các giỏ và các mặt hàng trong mỗi giỏ theo thứ tự bất kỳ. Nếu có nhiều cách phân phối tối ưu, in ra một cách bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 2 1 3 2 3 1 |
5.5 1 3 2 1 2 |
Giỏ thứ nhất chứa mặt hàng (ghế đẩu giá ) nên được giảm còn . Giỏ thứ hai chứa mặt hàng (ghế đẩu giá ) và mặt hàng (bút chì giá ); giỏ có ghế đẩu nên mặt hàng rẻ nhất (giá ) được giảm còn , tổng giỏ này là . Tổng cộng . |
| 4 3 4 1 1 2 2 2 3 2 |
8.0 1 1 1 4 2 2 3 |
Chỉ có một ghế đẩu (mặt hàng ). Đặt riêng nó vào một giỏ để được giảm còn . Hai giỏ còn lại chỉ chứa bút chì nên không được giảm. Tổng cộng . |
Bình luận