Editorial for COCI '20 Contest 1 #1 Patkice
Submitting an official solution before solving the problem yourself is a bannable offence.
We save the input as a matrix . Let the starting island have coordinates , so o
. We will try to send the ducks to each of the four directions, yielding four paths. For each of these paths, we count through how many cells it passes before reaching x
, or say the distance is infinite if the path ends in .
or o
.
Implementation: we run the following algorithm four times, starting from , , and . We maintain the current duck position as , and the length of the path in a variable initialized to . If is in <>^v
, increment and move in the corresponding direction. (We can use dict
or std::map
, mapping the ordered pairs which describe the direction to characters, e.g. {'>': (0, 1)}
). If equals o
or .
, set and stop processing this path. We are done if equals x
.
After the previous part, we have the distances , , and . If all , there is no solution and we print :(
.
Else, we print :)
and the letter for which is minimal, breaking ties alphabetically.
Comments