USACO 2012 - Wrong Directions
Xem PDFFarmer John vừa mua một chiếc máy kéo lập trình được đời mới rất hiện đại. Để điều khiển máy kéo di chuyển, ông nhập một xâu độ dài \(N\) (\(1 \leq N \leq 100\,000\)) chỉ gồm các ký tự F, L và R. Mỗi ký tự F ra lệnh cho máy kéo tiến về phía trước một đơn vị, còn các ký tự L và R lần lượt khiến máy kéo rẽ trái và rẽ phải \(90\) độ. Ban đầu, máy kéo ở gốc tọa độ \((0,0)\) và quay mặt về phía bắc.
Sau khi lập trình máy kéo bằng cách nhập xâu lệnh dự định, FJ nhớ ra rằng mình đã gõ sai đúng một ký tự trong xâu lệnh, nhưng ông không nhớ đó là ký tự nào! Chẳng hạn, ông có thể đã gõ F hoặc L tại vị trí mà xâu dự định chứa ký tự R. Hãy tính số vị trí khác nhau trên mặt phẳng mà máy kéo có thể dừng lại do lỗi này (hướng mà máy kéo quay mặt khi ở vị trí cuối cùng không quan trọng).
Dữ liệu vào
Dòng đầu tiên chứa xâu lệnh mà Farmer John dự định nhập.
Dữ liệu ra
In ra số vị trí mà máy kéo có thể dừng lại, với điều kiện FJ gõ sai một trong các ký tự của xâu lệnh.
Ví dụ
Ví dụ 1
Input
FF
Output
3
Giải thích
Farmer John muốn máy kéo tiến về phía trước hai lần và trong trường hợp lý tưởng sẽ dừng tại vị trí \((0,2)\).
Có 4 xâu lệnh bị gõ sai có thể xảy ra: FL, FR, LF và RF. Chúng lần lượt đưa máy kéo tới \((0,1)\), \((0,1)\), \((-1,0)\) và \((1,0)\), tổng cộng là 3 vị trí phân biệt.
Nguồn
USACO 2012 March Contest, Bronze Division — Wrong Directions. Tác giả đề: Brian Dean (2012).
Kỳ thi:
- USACO 2012 - Tháng 3 - Hạng Đồng (1 Tháng ba, 2012)
Bình luận