Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Một hệ thống máy tính hiện đang lưu trữ ~N~ tập tin, tập tin thứ ~i~ được đặt tên là ~S_i~.
Nhận thấy rằng có nhiều tập tin không cần thiết, người ta đã xóa đi một số tập tin của hệ thống máy tính. Cụ thể, người ta đã thực hiện ~Q~ thao tác xóa tập tin. Mỗi thao tác được biểu diễn bởi một kí tự ~c~, cho biết thao tác này xóa đi các tập tin có tên chứa ít nhất một kí tự ~c~.
Sau mỗi thao tác xóa, hãy cho biết còn lại bao nhiêu tập tin trong hệ thống máy tính.
Input
- Dòng đầu tiên gồm hai số nguyên ~N~ và ~Q\ (1 ≤ N, Q ≤ 100000)~;
- ~N~ dòng tiếp theo, dòng thứ ~i~ gồm xâu kí tự ~S_i~ độ dài không vượt quá ~8~, chỉ gồm các kí tự latin in thường - tên của tập tin thứ ~i~.
- ~Q~ dòng tiếp theo, mỗi dòng gồm một kí tự latin in thường ~c~ - mô tả một thao tác xóa.
Output
- In ra ~Q~ dòng, dòng thứ ~i~ gồm số tập tin còn lại trong hệ thống máy tính sau khi thực hiện thao tác xóa thứ ~i~.
Sample
Input #1
6 3
shoes
split
rect
line
vision
walk
o
z
s
Output #1
4
4
3
Input #2
1 3
abc
a
a
a
Output #2
0
0
0
Hint
- Ở ví dụ thứ nhất:
- Sau thao tác xóa thứ nhất, các tập tin còn lại là
split
,rect
,line
vàwalk
; - Thao tác xóa thứ hai không xóa đi tập tin nào;
- Sau thao tác xóa thứ ba, các tập tin còn lại là
rect
,line
vàwalk
.
- Sau thao tác xóa thứ nhất, các tập tin còn lại là
Problem source: Kc97ble - Free Contest
Bình luận
bài này làm thế nào vậy