ICTU Core System - Bộ Lọc Sự Kiện Phân Tán
Xem dạng PDFTại trung tâm dữ liệu mạng của ICTU, một hệ thống lõi mang tên DistributedEventBroker đang hoạt động hết công suất để tiếp nhận các luồng gói tin (Telemetry) tốc độ cao từ các máy trạm. Dữ liệu truyền về được phân thành 2 loại:
Gói đo lường (Metrics).
Gói tín hiệu điều khiển (Signal).
Do đường truyền đôi khi gặp sự cố, một số gói tin bị phình to bất thường. Để chống sập hệ thống (Crash), bộ lọc được thiết lập một mức trần MTU (Maximum Transmission Unit) là 4096 bytes. Bất kỳ gói tin nào có kích thước lớn hơn 4096 bytes đều bị coi là "Poison pill" và bị hệ thống ném ra ngoại lệ (vứt bỏ ngay lập tức).
Nhiệm vụ của bạn:
Cho một danh sách N log ghi lại các gói tin đang đi vào hệ thống. Hãy lập trình mô phỏng lại bộ lọc của hệ thống lõi và thống kê 2 thông số sau:
metrics_total: Tổng số gói Metrics HỢP LỆ.
critical_signals: Tổng số gói Signal HỢP LỆ và mang tính chất cảnh báo nghiêm trọng (Priority > 9).
Dữ liệu vào (Input):
Dòng đầu tiên chứa số nguyên dương N (1 <= N <= 10^5) là số lượng gói tin đi vào hệ thống.
N dòng tiếp theo, mỗi dòng mô tả một gói tin theo 1 trong 2 định dạng sau:
Nếu là gói Metrics: M L (Trong đó 'M' là loại gói, L là kích thước gói dữ liệu).
Nếu là gói Signal: S L P (Trong đó 'S' là loại gói, L là kích thước gói dữ liệu, P là mức độ ưu tiên - Priority).
Dữ liệu ra (Output):
In ra một dòng duy nhất chứa 2 số nguyên cách nhau bởi khoảng trắng: Giá trị của metricstotal và criticalsignals.
Ràng buộc:
1 <= L <= 10^5.
1 <= P <= 100.
Ví dụ:
Input:
4
M 1024
S 2048 10
M 5000
S 100 5
Output:
1 1
Giải thích ví dụ:
Gói 1 (M 1024): Kích thước 1024 <= 4096 (Hợp lệ) -> Biến metrics_total tăng thêm 1.
Gói 2 (S 2048 10): Kích thước 2048 <= 4096 (Hợp lệ). Đây là gói Signal có Priority = 10 (Lớn hơn 9) -> Biến critical_signals tăng thêm 1.
Gói 3 (M 5000): Kích thước 5000 > 4096 (Vượt mức MTU). Gói tin bị vứt bỏ.
Gói 4 (S 100 5): Kích thước 100 <= 4096 (Hợp lệ). Tuy nhiên Priority = 5 (Không lớn hơn 9) -> Bỏ qua, không đếm vào critical_signals.
Tổng kết: Hệ thống ghi nhận 1 gói Metrics hợp lệ và 1 gói Signal nghiêm trọng.
Bình luận