Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Thông dịch ngôn ngữ điều khiển rùa

    Một "ngôn ngữ mini" điều khiển rùa vẽ hình được thông dịch tuần tự từng câu lệnh. Rùa xuất phát tại gốc tọa độ (0,0)(0,0)(0,0), mặt hướng về phía Bắc (chiều dương trục yyy). Chương trình gồm nnn dòng lệnh, mỗi dòng có đúng một trong ba dạng sau:

    • F d: đi thẳng về phía trước ddd đơn vị (ddd là số nguyên dương) theo hướng đang đối mặt.
    • L: quay trái 90∘90^\circ90∘ tại chỗ (không di chuyển).
    • R: quay phải 90∘90^\circ90∘ tại chỗ (không di chuyển).

    Bốn hướng theo thứ tự xoay phải là N (Bắc) →\to→ E (Đông) →\to→ S (Nam) →\to→ W (Tây) →\to→ N. Hãy thông dịch (mô phỏng thực thi) toàn bộ chương trình và xác định vị trí, hướng cuối cùng của rùa.

    Ví dụ: với chương trình gồm 4 dòng F 2, R, F 3, L: rùa đi từ (0,0)(0,0)(0,0) lên (0,2)(0,2)(0,2) (hướng N), quay phải sang hướng E, đi tiếp tới (3,2)(3,2)(3,2), rồi quay trái trở lại hướng N. Kết quả in ra là 3 2 N.

    • Định dạng đầu vào:

      Dòng đầu tiên chứa số nguyên nnn (0≤n≤10000 \le n \le 10000≤n≤1000) — số lệnh. nnn dòng tiếp theo, mỗi dòng là một lệnh đúng theo định dạng F d, L, hoặc R (giữa F và d có đúng một khoảng trắng). Nếu n=0n = 0n=0 thì không có dòng lệnh nào.

    • Định dạng đầu ra:

      In ra đúng một dòng gồm ba giá trị cách nhau bởi một khoảng trắng: tọa độ xxx, tọa độ yyy (hai số nguyên), và ký tự hướng hiện tại (một trong N, E, S, W).

    Ví dụ:

    Đầu vào:

    0
    

    Đầu ra:

    0 0 N
    

    Đầu vào:

    4
    F 2
    R
    F 3
    L
    

    Đầu ra:

    3 2 N
    

    Đang tải editor...