"Uncle Jacques, " you ask, "What's for dinner?"
"Ask me again in 10 minutes, " Uncle Jacques replies, eyeing the weary-looking frog sitting on the shoulder of Interstate 10, in front of your dilapidated shack.
You notice the potential roadkill as it begins its journey across the vehicle-laden road. You want to know if you should begin boiling a pot of water in anticipation of frog legs for dinner or warm up the leftover possum. You fire up your Swamp 'Puter XL2 and quickly write a program to determine if it is possible for the frog to make it across the road or if it will be hit by a vehicle.
Examining the patch of road in front of your shack, you notice the lanes and shoulders resemble a 10 X 10 grid of squares (shown below). You also notice that the way the frog and the vehicles are moving can be described in "turns". To determine if the frog makes it across the road, you quickly devise a set of rules:
- At the onset of a run, the frog can start in any square on row 0 (the starting shoulder).
- At the onset of a run, each vehicle will occupy a square in any column, but only in rows 1-8 (the lanes).
- Each turn will consist of two steps:
- First, the frog will always remain in the same column and move one row down, towards row 9, his destination (he's not the smartest frog in the world).
- Next, all the vehicles move (at the same time), n squares left or right, depending on which row (lane) they are in, where n is their speed (given in the input). To simulate more approaching vehicles, if a vehicle moves off the grid, it instead "wraps around" and appears from the opposite side. Ex: In the grid below, if a vehicle would move to occupy column -1, it would instead occupy column 9 (column -2 would instead occupy column 8, etc.). Also, if a vehicle would move to occupy column 10, it would instead occupy column 0 (column 11 would instead occupy column 1, etc.).
Column
0123456789
----------
R 0| |<- The frog can start in any square on row 0
o 1| |(shoulder)
w 2| /___ |
3| \ |cars in rows (lanes) 1-4 move left, or
4| |towards column 0
5| |
6| ___\ |cars in rows (lanes) 5-8 move right, or
7| / |towards column 9
8| |
9| |<- The destination row (shoulder) of the frog
----------
- The frog will succeed in crossing the interstate for a run if it can reach row 9 (without becoming roadkill) after a series of turns starting in ANY column on row 0 (he's not the dumbest frog in the world, either).
- The frog will become roadkill if at any point it occupies the same square as a vehicle. This includes:
- The frog moving into a square a vehicle occupies, or
- A vehicle "running over" the frog by moving over or into a square the frog occupies.