(Nontopical life update: Current 18.06 homework status: 34% (mildly
screwed, probably won’t finish before I leave my cozy home for the U.S.
and I usually struggle to get into the mood for homework while
traveling, but I guess I’ll have to))
(I’ve been spending most of my uptime doing said homework and running
errands, and my downtime catching up on Last Week Tonight with
John Oliver while farming the Flight Rising Coliseum. And, okay,
making the above status panel.
Live
version here courtesy of Dropbox’s Public folder. No regrets.)
Day 3 (Excursions)
Morning routine snipped. We come to the middle school again to eat
breakfast and gather; the contestants will be taking their tests here
(accompanied by one bottle of “Buff” energy drink each) while the rest
of us will be going on an excursion. Before this happens, though, two
Taiwanese contestants ask me and Hsin-Po some math problems. There’s a
geometry problem, which I fail to solve:
(paraphrased) In triangle △ABC, ∠A is 40° and ∠B is 60°. The angle
bisector of ∠A meets BC at D; E is on AB such that ∠ADE is 30°. Find
∠DEC.
Hsin-Po figures out that, once you guess (ROT13) gur bgure boivbhf
privna vf nyfb na natyr ovfrpgbe naq gurl vagrefrpg ng gur vapragre, lbh
pna cebir vg ol pbafgehpgvat gur vapragre naq fubjvat sebz gur tvira
natyr gung gurl vaqrrq pbvapvqr. Then, there’s a
combinatorics problem in a book with a solution that they’re not sure
about:
After the first stage of selection camp, I was very nervous because I
was fifth place in a selection sequence that would finally result in a
team of four.
I screwed myself over on the first mock test by committing to a bad
implementation method on a problem that was hard to get points on. My
method seemed simple, but the memory usage leaked out in a way that was
confusing and hard to patch; unfortunately, I tried to patch it in
increasingly desperate and convoluted ways rather than scrapping the
method, and thus missed out on many of the points elsewhere.
During the second test I failed to read the last problem carefully
and spent too much of my time on the second problem, once again missing
out on a lot of relatively easy points. I had optimized and optimized
and pushed my quadratic runtime down to linearithmic, which would allow
me to get the points for the last subtask — or so I thought. But with 10
minutes left I had all but one testcase right, and after desperately
rereading my code, I realized that I had a string comparison stuck in an
inner loop that could make my runtime degenerate to quadratic if the
input string had lots of the same digit. In order to have a solidly
linearithmic algorithm, I would have to implement a
suffix array.
Ten minutes? I gave up. (The problem setters told me afterwards that
hashing would have worked too; I didn’t think of that at all. Oops.) I
spent the 10 minutes reading the last problem and still failed to read
it carefully. So that did not go very well.
But, as the title probably gave away, during the third and fourth
mock tests everything went much better than expected. :)