Bài 30.4. Trung Tâm Điều Khiển Robot "PointerBot" - [Độ khó: Khá]
Bài 30.4. Trung Tâm Điều Khiển Robot "PointerBot" - [Độ khó: Khá]
Bạn là kỹ sư phần mềm tại trung tâm điều khiển robot "PointerBot". Các robot được điều khiển bằng một chuỗi các lệnh văn bản (ví dụ: "MOVE", "ROTATE", "SCAN"). Tuy nhiên, hệ thống nhận diện lệnh đôi khi gặp lỗi và tạo ra các lệnh không hợp lệ. Bạn cần viết một chương trình để phân tích một danh sách các lệnh, đếm số lượng mỗi loại lệnh hợp lệ và xác định các lệnh không hợp lệ.
INPUT FORMAT
Đầu vào gồm:
- Dòng 1: Một số nguyên
N
(1 <=N
<= 50), là số lượng lệnh. N
dòng tiếp theo: Mỗi dòng chứa một chuỗi ký tự (C-style string) là một lệnh. Độ dài mỗi lệnh không quá 20 ký tự và chỉ chứa chữ cái tiếng Anh in hoa.
OUTPUT FORMAT
Đầu ra gồm bốn dòng, mỗi dòng hiển thị số lượng của một loại lệnh:
- Số lượng lệnh "MOVE".
- Số lượng lệnh "ROTATE".
- Số lượng lệnh "SCAN".
- Số lượng lệnh "UNKNOWN" (các lệnh không thuộc 3 loại trên).
Định dạng: [Ten_lenh]: [So_luong]
Ví dụ:
Input:
6
MOVE
ROTATE
SCAN
MOVE
JUMP
SCAN
Output:
MOVE: 2
ROTATE: 1
SCAN: 2
UNKNOWN: 1
Giải thích:
- Bạn sẽ cần một mảng con trỏ kiểu
char*
hoặc mộtchar commands[N][MAX_LEN]
để lưu trữ các chuỗi lệnh. - Để so sánh các chuỗi ký tự, bạn cần sử dụng hàm
strcmp
từ thư viện<cstring>
(hoặc<string.h>
). - Duyệt qua từng lệnh, dùng
strcmp
để kiểm tra xem nó có phải là "MOVE", "ROTATE" hay "SCAN" không. Nếu không, nó là "UNKNOWN". - Tăng bộ đếm tương ứng và in kết quả.
Comments