6 ms·
I did the AoC last year for the first time and was amazed how quickly some participants solved the puzzles, e.g. < 60 seconds. (I wrote about my experience here
by anthay 8y ago
I did the AoC last year for the first time and was amazed how quickly some participants solved the puzzles, e.g. < 60 seconds. (I wrote about my experience here: http://howtowriteaprogram.blogspot.com/2017/12/advent-of-code-2017.html http://howtowriteaprogram.blogspot.com/2017/12/advent-of-cod...)
- Marazan 8y agoNever rule out people cheating. Solving it on one account then doing it again in another account
- has2k1 8y agoYou cannot cheat that way. It tracks time since the question became live.
- nneonneo 8y agoThat doesn't help - time is counted from midnight, so if you solve the problem on one account and then another, the second account will have a strictly worse time. About all it can really do is mess with the score distribution. 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).
- aczerepinski 8y agoYou could hurt other people's scores though right? Like if you and one other competitor traded wins on different days, but you had a second account that you posted the same solution to, your competitor would get third place on your winning days (and thus fewer points). (Please don't do this!)
- saagarjha 8y agoAside from the other responses mentioning why cheating wouldn’t work, I don’t think it’s out of the question that people can solve these that quickly. The “trick”, from my experience, has been to quickly skim the problem, extract useful information (which you can “learn” to do if you do it enough), and try to figure out how to solve the problem while you are writing boilerplate to set up the problem. Using Python or a similarly high-level language often helps.
- keithnz 8y agoI vaguely remember something from last year or the year before one of them was pretty quick because I could just ask wolfram alpha to solve it:)
- nneonneo 8y agoI'm one of the people who solved problems very quickly (3rd overall last year). I'm somewhat competitive by nature, and I did ACM programming challenges in undergrad (although I was never good enough to make the local team, heh). Happy to answer any questions you might have about "competitive" AoC; it's fun in a very different way than learning new languages for the competition. I personally used Python for the last few years, and I'll probably use it again this year (assuming I try to compete). 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.
- w4tson 8y agoFor day 3 in 2017, the spiral. Were you just aware of this concept before hand?
- saagarjha 8y agoI’m not OP, but if I were solving this I’d just take the smallest square less than that number, figure out where it is (the top left or bottom right corner), and then “run” the algorithm from there, which should only require one “turn” at the most. You really don’t need to know anything about spirals in particular; just look for a pattern that you can take advantage of to reduce your work.
- w4tson 8y agoYou make it sound so easy. Part 2 was the real gnarly bit. 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
- 8y ago