SequenceOfCommands
SRM 473 · 2009-11-12 · by misof
Problem Statement
You are standing on some arbitrary point in the infinite plane.
You are given a
There are only three types of commands: 'S' means "step forward", 'L' means "turn 90 degrees to the left", and 'R' means "turn 90 degrees to the right". All your steps have the same length.
You will be executing the commands forever: after you execute the last character of the last element of commands, you will always start from the beginning again.
We say that your path is bounded if there is some positive real number R such that while executing the infinite sequence of steps you will never leave the circle with radius R steps and center at your starting location.
Given the
Constraints
- commands will contain between 1 and 50 elements, inclusive.
- Each element in commands will contain between 1 and 50 characters, inclusive.
- Each character in each element of commands will be one of 'S', 'L', and 'R'.
{"L"}
Returns: "bounded"
You are standing on the same spot forever, and in each step you take a turn 90 degrees to the left. This path is clearly bounded.
{"SRSL"}
Returns: "unbounded"
Imagine that you start executing the commands facing to the north. While following this sequence you will repeatedly execute the following steps: make a step to the north, rotate right, make a step to the east, and rotate left (to face north again). Given enough time, this path will take you arbitrarily far away from the spot where you started, hence it is unbounded.
{"SSSS","R"}
Returns: "bounded"
While executing this sequence of commands, you will be walking along the boundary of a small square.
{"SRSL","LLSSSSSSL","SSSSSS","L"}
Returns: "unbounded"
{"LR"}
Returns: "bounded"
Submissions are judged against all 125 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Language: C++17 · define a public class SequenceOfCommands with a public method string whatHappens(vector<string> commands) · 125 test cases · 2 s / 256 MB per case