Disclaimer: This blog is not about competitive programming; you probably will not learn anything about algorithms and data structures. In other words, it doesn't qualify for this initiative, but I want to give a link to it anyways because I think it's cool.
I love solving problems. No, seriously. I LOVE it. The mindset described in this blog is 100% how I feel. But it is not constrained to competitive programming problems. I loved math problems for a much longer time, and physics was somewhere there. But I also love solving puzzles. And playing puzzle games on the computer (well, on consoles). And participating in intellectual games. I am not as good in them as in cp, but it was never about being good for me, I just love the process.
And I think that there might be some people with a similar love for puzzles among competitive programmers, this is why I decided to write this blog on CF
and not because this is the only place on the Internet where my opinion matters a little.
So, there is this thing called puzzle hunts. Basically, it's a set of puzzles, but they don't tell you the rules. And the idea is to bend the rules even if there are some. Some blog about puzzlehunts. The quote in the beginning is great:
Imagine a word search.
Now imagine you aren’t told what words to look for.
Now imagine you aren’t told it’s a word search.
Now imagine it isn’t a word search.
I'm not experienced in this at all, my first puzzle hunt was a year ago. 2023 MIT Mystery Hunt ended yesterday, and this weekend was one of the most fun experiences of my life. And I encountered the best puzzle of my life to date (which is not saying much). Spoilers for MITMH23 below.
Enter Showcase (I would not be surprised if the link will not open, the hunt just ended and I don't think the site was totally transformed into free form, so you might have to wait a bit; UPD we now have a PDF courtesy of one of the authors). Authors of this puzzle include
This story starts around 1 pm (in my timezone) on Saturday. I open the puzzle and see 12 small grid puzzles. I love grid puzzles, I want to try and solve this one. Flavor text says
These are the contest’s best entries, but their instructions are a mess from start to end.
which probably means that I won't be able to solve the grid puzzles as is. But I don't understand what to do instead, so after some staring, I decide to try anyway. Surprisingly for me, the first 10 puzzles are pretty normal, they have a unique solution and some of them are interesting to solve (try E, H and I). This doesn't really help, as I still have no idea what to do next. I switched to a different puzzle.
Around 2 am in the night I thought that we should request a hint. The hint was "Read the flavor text carefully — it seems to be directing your intention to certain parts of the logic puzzles' instructions. Read those parts in order to find a cluephrase for what to do next." I did that and got...
FIND ANOTHER CONTEST MIT WON RECENTLY, WATCH BROADCAST AFTER HOUR FOUR, OVERLAY LETTERS FROM FITTING ACRONYM IN SPOKEN ONE MAYBE TWO WORDS WITH TITLES.
MIT won the finals a couple of months ago... broadcast? hour four? wait, there are 12 puzzles which are numbered with letters?! Yes, this is certainly about ICPC WF. And look, this final has exactly 12 problems! I'm calling VArtem, who was one of the two not-yet-asleep members of our team, to join me.
Intrigued, I open the recording of the broadcast. They are talking about FFT, which is an acronym... but what to do with it? Rewatching several minutes around the 4-hour mark, nothing. But it is surely about the finals, and we should match 12 puzzles to 12 problems in the problemset. We look at the names of the problems, we open the problemset (I didn't want to spoil the problems to myself, but MITMH requires some sacrifices (mostly sleep)). Here it is, crystal structures (did you notice 12 phrases under the puzzles?)! But no, nothing else matches...
Since I was rewatching several minutes around the 4-hour mark for the fifth time, I was too slow here. But the hint was to watch broadcast after hour four, not right after.
So, ecnerwala is going through the problemset and saying the phrases. We found couple more and... why is he saying weird words? People don't normally say "discrepancy" and "inconspicuous". Wait, ecnerwala. ecnerwala is from MIT. They didn't just take a video and made an ICPC-related puzzle. He is doing that on purpose!
Then we spend half an hour trying to hear phrases from the statement and writing down words. Then half an hour more for problem F. Then we just gave up. From the official solution to the puzzle: You might have encountered some difficulty finding the special phrase for Problem F — this was because the stream cut out while Andrew was covering this problem! We had to get Andrew to re-mention problem F some 30 minutes later, at timestamp 4:54:30.
Okay, we got almost all weird words and correspondence to problems, what's next? After several minutes I notice that several grid puzzle names have the same length as corresponding weird words. What was it, "OVERLAY LETTERS FROM FITTING ACRONYM IN SPOKEN ONE MAYBE TWO WORDS WITH TITLES"? We had to write down two words instead of one to get all lengths to match, but other than that it looked good. Ok, ICPC would be a fitting acronym, but... wait. Wait wait wait wait. All the weird words have a subsequence ICPC. Seriously?
Taking the corresponding letters we got
ORDER PROBLEMS BY MIT SOLVE TIME TAKE FIRST LINE OF OUTPUT. Output? Puzzle solutions you mean? Ok, we try, and it doesn't look good. Sample output? Doesn't look good either. After another half an hour of trying different things we decided to take another hint. Maybe we shouldn't have do it so soon, but we (well, at least I, can't say for Artem) really wanted to solve this CP-related puzzle and it was already 4:30 am.
The hint says "What does "output" mean in the context of ICPC problems? You'll need some corresponding "input", where can you find it?".
I mean... we still haven't used the puzzles. Could it be?.. We look closer at the puzzle solutions...
For the next 20 minutes me and VArtem are just sitting there and each minute one of us says some variation of "this is amazing". THEY MADE 12 GRID PUZZLES WITH DIFFERENT RULES (some of them are even good) WHOSE SOLUTIONS ARE VALID INPUTS TO ICPC WF PROBLEMS. I will repeat that and I don't think that caps is enough to emphasize what has happened.
THEY MADE 12 GRID PUZZLES WHOSE SOLUTIONS ARE VALID INPUTS TO ICPC WF PROBLEMS. ICPC WF is a serious prestigious competition. I am pretty sure that ecnerwala did not know anything about the WF problems before the contest. The problems could have had wildly different input and output formats. This is just unbelievable to me.
And don't get me wrong, the puzzle before that was also very good and very cool. ICPC subsequence is cool, and what's even more amazing about it is that ecnerwala managed to naturally mention all the words he needed as it was a normal discussion of the problems. And again, they didn't have the problemset beforehand, so they had to come up with all these natural-sounding phrases in 4 hours between the start of the contest and Andrew's amazing performance. They could have prepared some words with ICPC subsequence, sure, but to include them into a text about a problem...
But the puzzle to inputs step knocks it out of the park for me. Obviously, unlike ICPC words in the broadcast, the grid puzzles and their names were not written in 5 hours, but I couldn't do it in a lifetime. I want to show my appreciation to the authors. And I'm really happy that in our team the people who solved this puzzle could appreciate it to the full extent (I would be surprised if there was another team with 2 former ICPC world champions (actually we had 4, including tourist (see, tourist does it, it is surely the secret ingredient to being LGM))).
So, a big thank you to ecnerwala, ksun48 and other authors. I assume that you guys are a part of teammate? Probably your experience in puzzle hunts is much more valuable than mine, so it would be cool to hear from you.
And if I convinced you to look at the puzzle hunts, here is a short guide I wrote for our team. It is bad, and there are much better guides out there, but I made it, so here it is.