Part of it is familiarity with the format, which of course assumes they keep things reasonably similar this year. Knowing the kinds of problems that appear (parsing, graphs, optimization, reverse engineering, etc.) helped me put together a little library of code that means I'm not spending time rewriting fundamental algorithms.
Reading problem statements is one of those skills I picked up from ACM programming competitions. The problem statements usually contain a lot of fluff - to speed-code you want to be able to pluck out the relevant bits quickly so you can start formulating the solution.
Anyway I’m sure I won’t ever encounter that spiral as long as I live but if I do, I have code prepped for it :D
Based on what I found online (which is abridged rewordings of the problem, something of a sequence sum?) I'd get lazy at that point and implement something that makes the spiral. Presumably, this shouldn't take to long, as the sequence grows rapidly so they can't give us a number that's too big…
Huh? Click [Events], click on the year, click on the day.
Also, the input data for each problem is randomized per user, so you really do need a proper programmatic solution (i.e. simply copying another person's answer is unlikely to work).
(Please don't do this!)