Tạo xâu
Đề bài
Mô tả
Bạn cần tạo ra một xâu . Để làm điều đó, bạn có xâu và phải thực hiện đúng thao tác ( là độ dài của ). Mỗi thao tác gồm:
- Chọn một xâu không rỗng bất kỳ trong các xâu .
- Chọn một ký tự bất kỳ trong xâu đó và ghi ký tự này ra giấy.
- Xóa ký tự vừa chọn khỏi xâu đó.
Sau mỗi thao tác, tổng số ký tự trong các xâu giảm đi . Bạn tạo được xâu nếu các ký tự đã ghi ra giấy, theo đúng thứ tự thực hiện thao tác, ghép lại thành đúng xâu .
Ngoài ra còn có các ràng buộc sau. Với mỗi xâu bạn biết một số là số ký tự tối đa được phép xóa khỏi . Đồng thời, mỗi thao tác xóa một ký tự khỏi xâu tốn đồng. Nghĩa là thao tác trên rẻ nhất (tốn đồng), còn thao tác trên đắt nhất (tốn đồng).
Hãy tính số tiền nhỏ nhất (tính bằng đồng) cần bỏ ra để tạo xâu . Chi phí tạo xâu là tổng chi phí của các thao tác đã dùng. Nếu không có cách nào tạo được , in ra .
Dữ liệu vào
- Dòng đầu chứa xâu .
- Dòng thứ hai chứa một số nguyên là số xâu được phép thao tác.
- Mỗi dòng trong dòng tiếp theo chứa một xâu và một số nguyên , cách nhau bởi dấu cách. là số ký tự tối đa được phép xóa khỏi .
Tất cả các xâu chỉ gồm các chữ cái Latinh in thường và đều không rỗng.
Dữ liệu ra
In ra một số duy nhất là số tiền nhỏ nhất cần bỏ ra để tạo xâu . Nếu không có lời giải, in ra .
Ràng buộc
- Độ dài của và của mỗi không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| bbaze 3 bzb 2 aeb 3 ba 10 |
8 | Lấy các ký tự "b" và "z" từ xâu thứ nhất (giá đồng), lấy "a", "e", "b" từ xâu thứ hai (giá đồng). Chi phí là . |
| abacaba 4 aba 2 bcc 1 caa 2 bbb 5 |
18 | Lấy hai "a" từ xâu thứ nhất (giá ), một "c" từ xâu thứ hai (giá ), hai "a" từ xâu thứ ba (giá ), hai "b" từ xâu thứ tư (giá ). Chi phí là . |
| xyz 4 axx 8 za 1 efg 4 t 1 |
-1 | Không tồn tại lời giải vì không có ký tự "y" trong các xâu đã cho. |
Bình luận