Truy vấn của Sonya
Đề bài
Mô tả
Ban đầu bạn có một tập hợp bội (multiset) rỗng chứa các số nguyên không âm. Bạn phải xử lý truy vấn, mỗi truy vấn thuộc một trong ba loại sau:
+ a: thêm số nguyên không âm vào tập hợp. Vì đây là tập hợp bội nên có thể tồn tại nhiều bản sao của cùng một số.- a: xóa một bản sao của số khỏi tập hợp. Đảm bảo rằng tại thời điểm xóa, trong tập hợp có ít nhất một số .? s: với xâu mẫu chỉ gồm các ký tự0và1, đếm số lượng phần tử trong tập hợp (tính cả lặp lại) khớp với mẫu .
Trong mẫu , ký tự 0 đại diện cho chữ số chẵn, còn 1 đại diện cho chữ số lẻ. Một số nguyên khớp với mẫu nếu tính chẵn lẻ của chữ số thứ tính từ phải sang của trùng với ký tự thứ tính từ phải sang của , với mọi vị trí.
Nếu mẫu ngắn hơn số thì mẫu được bổ sung thêm các chữ số 0 vào bên trái. Ngược lại, nếu số ngắn hơn mẫu thì biểu diễn thập phân của số được bổ sung thêm các chữ số 0 vào bên trái.
Ví dụ, với mẫu thì các số , , và khớp với mẫu, còn các số , , và thì không.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số truy vấn.
- dòng tiếp theo, mỗi dòng mô tả một truy vấn. Dòng bắt đầu bằng ký tự loại truy vấn (
+,-hoặc?), theo sau là một dấu cách rồi tới đối số. Với+và-, đối số là số nguyên (không có số 0 vô nghĩa ở đầu, trừ khi ). Với?, đối số là xâu mẫu gồm các ký tự0và1.
Dữ liệu ra
Với mỗi truy vấn loại ?, in ra một dòng chứa số lượng phần tử trong tập hợp khớp với mẫu tại thời điểm đó.
Ràng buộc
- Độ dài mẫu không vượt quá .
- Có ít nhất một truy vấn loại
?.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 + 200 + 200 - 200 ? 0 |
1 | Sau ba thao tác đầu, tập hợp còn lại một số . Mẫu khớp với các số có chữ số hàng đơn vị chẵn; có chữ số cuối là (chẵn) nên khớp. |
| 12 + 1 + 241 ? 1 + 361 - 241 ? 0101 + 101 ? 101 - 101 ? 101 + 4000 ? 0 |
2 1 2 1 1 |
Truy vấn ? 1 khớp với và (đều lẻ ở hàng đơn vị). Truy vấn ? 0101 khớp với . Truy vấn ? 101 (lúc này) khớp với và , rồi sau khi xóa chỉ còn . Truy vấn cuối ? 0 khớp với . |
Bình luận