Lưu lượng gửi ra của máy chủ chat
Đề bài
Mô tả
Một máy chủ chat xử lý một dãy lệnh, mỗi lệnh nằm trên một dòng riêng. Có ba loại lệnh:
- Thêm một người vào phòng chat:
+<tên>. - Xóa một người khỏi phòng chat:
-<tên>. - Gửi một tin nhắn:
<người gửi>:<nội dung>. Khi đó máy chủ gửi tin nhắn tới tất cả những người đang có mặt trong phòng chat tại thời điểm đó (kể cả chính người gửi).
Lệnh thêm và xóa không tạo ra lưu lượng. Với mỗi lệnh gửi, nếu độ dài của nội dung tin nhắn là ký tự thì máy chủ gửi byte cho mỗi người đang có mặt trong phòng. Hãy tính tổng lưu lượng gửi ra mà máy chủ tạo ra sau khi xử lý toàn bộ dãy lệnh.
<tên> và <người gửi> là một xâu khác rỗng gồm các chữ cái Latin và chữ số. <nội dung> có thể chứa chữ cái, chữ số và dấu cách, nhưng không bắt đầu hoặc kết thúc bằng dấu cách; <nội dung> cũng có thể là xâu rỗng. Nội dung tin nhắn tính từ ngay sau dấu hai chấm đầu tiên trên dòng.
Dữ liệu đảm bảo hợp lệ: không có lệnh thêm một người đã ở trong phòng, không có lệnh xóa một người không có trong phòng. Tên phân biệt chữ hoa và chữ thường.
Dữ liệu vào
Gồm không quá dòng, mỗi dòng là một lệnh theo đúng định dạng trên. Mỗi dòng dài không quá ký tự.
Dữ liệu ra
In ra một số nguyên duy nhất: tổng lưu lượng gửi ra của máy chủ.
Ràng buộc
- Số lệnh không vượt quá .
- Mỗi dòng dài không quá ký tự.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| +Mike Mike:hello +Kate +Dmitry -Dmitry Kate:hi -Kate |
9 | Khi Mike gửi "hello" (5 ký tự) chỉ có Mike trong phòng: . Khi Kate gửi "hi" (2 ký tự) có Mike và Kate trong phòng: . Tổng cộng . |
| +Mike -Mike +Mike Mike:Hi I am here -Mike +Kate -Kate |
14 | Khi Mike gửi tin nhắn "Hi I am here" (14 ký tự, gồm cả các dấu cách bên trong) chỉ có Mike trong phòng: . |
Bình luận