EGOI 2025, Online
Introduction
The 5th European Girls’ Olympiad in Informatics (EGOI) 2025 was held in Bonn, Germany from July 14 to July 20, 2025, and Malaysia participated online. The Malaysian team comprised of Ching Hui Qing, Gan Ru Ying, Ng Jun Di and Vee Hua Jun. The team leader was Chiu Bee Han and the deputy team leader was Wan Zhiyang. This marks the inaugural participation of Malaysia in EGOI.
July 14: Arrival
“Ideally, we check in by 3:45pm latest ba so we have time to settle down and stuff” - Mr Wan. At 2:44 pm, the entire team except Hua Jun - who was apparently lying on her bed - had arrived. Unfortunately, Mr Wan said, “NOOOOO 😭 you can’t check in before 3 pm!” Mr Wan looked drastically different than what we expected of an IMO’er: he looked young, friendly and approachable, and didn’t seem to be balding yet. After we checked in the Airbnb, we realised that we could only fit two people at the living room table (it was way smaller than the promotional pictures), and each room only had one socket. We decided to cope by turning off the lights and treating the television as a karaoke screen, until Hua Jun (our lord, our saviour, our hero) brought extensions and saved us. We politely requested (definitely not threatened) Mr Wan to pick our dining spot, and surprisingly, he picked a decent restaurant. After dinner, we strolled in the park downstairs and watched the sunset together. Unfortunately, when we got back, Hua Jun peer pressured us into torturing ourselves by doing a speed contest, and we discussed the questions afterwards.
July 15: Practice Session
We started the day with breakfast, and we learnt that Hua Jun lived the typical coder lifestyle: she started her mornings with anime and Stardew Valley, followed by Luogu, Codeforces and AtCoder. Hui Qing woke up at 7am to watch organic chemistry lecture videos and do her worksheets. After that, we renovated the living hall by dragging out the tables from our bedrooms to merge with the living room table, forming a table even larger than the pictures! We then met our leader Bee Han and then started our practice session. During this session, the system had a lot of issues - we couldn’t select files, submit code or use the kattis editor every now and then. Some of us guessed that submissions were rate limited (but it could be evaded by opening multiple tabs?), but thankfully it was fixed around an hour in. Most of us didn’t do well in the two-hour practice contest, but Jun Di cooked. She solved MakeThingsEven and casually explained her ideas after the contest as if they were trivial. There were stray cats everywhere around our airbnb and the leaders bought us a lot of snacks!
July 16: Contest Day 1
We went out for breakfast and most of us woke up around 11am. After the contest, we went out for dinner then gossiped and watched anime until 5am - which shockingly, helped us to sleep better the subsequent night.
Ru Ying:
Unfortunately, I choked on A and overcomplicated it, trying really complicated greedy algorithms, hence I took more than 2 hours to spot two pointers and AC A, causing me to score lower than I could have in the other questions. Subtasks 1 and 2 of B were pretty straightforward by brute force, while subtask 3 just requires binary search, and subtask 4 is an extension of subtask 3, I spent less than half an hour on these subtasks. Subtasks 1 and 2 of D are obvious by prefix sum and MST respectively. Sadly I bricked on C D: Overall, I landed in mid-high bronze.
Jun Di:
When the contest began, I initially focused on solving Gift Boxes. After about an hour, I managed to get the first two subtasks and decided to take a look at the later problems. After grabbing all the subtasks that could be solved with brute force (though I made a silly mistake in Dark Ride and only got the first subtask), I decided to return to Gift Boxes.
At that point, I started trying a two-pointer approach: setting l to 0 and r to the position of the last person from the first newly-appearing country. Following that line of thought, I managed to implement it and got subtask 4. This approach was quite close to AC, but the implementation was complicated, and I couldn’t figure out how to write it properly at the time.
So, I set that problem aside and moved on to Monster-Go, which looked more interesting. Unfortunately, due to time constraints and mental fatigue, I only came up with the idea of making the numbers form a “cycle”, but I didn’t manage to implement it successfully.
Hui Qing:
I began with Problem A, dedicating almost 2.5 hours to achieve an AC solution for P1 without first reviewing the other problems. I regret how I spent my time. After examining P2, P3, and P4, I quickly solved Subtask 1 for each. I then turned my attention to P3, believing I could earn more points there, but ultimately only secured 16 marks. However, I learned post-contest that it was possible to gain an additional 15 marks (Subtask 2) in P2 using the same approach as Subtask 1
Hua Jun:
The night before contest day 1, I was so panicked I couldn’t calm down and sleep until about 3 am. So I took a long nap after having breakfast to prepare myself for the contest. As the contest started, my hands were shaking and my heart was pounding - I was so nervous. Luckily, I AC-ed my first question (Gift Boxes) on the first attempt within the first hour. It was a bit tough to implement, but I forced it out of me. That helped me calm down slightly and read the remaining three problems more clearly. I couldn’t get any solid idea after reading them for a while. So I brute-forced Monster-Go and got 8 marks just to relax for a bit. I only finally understood Dark-Ride after half an hour. After grinding all the brute-force parts of the remaining questions, I drafted out my first thought on Monster-Go to get a better sense of it. It helped, and I started feeling more motivated seeing my score slowly climb. The last hour was torturous, I felt like I couldn’t hit 200 marks even if I kept grinding on Monster-Go. So I pulled myself away and went through p2 and p4 again to make sure I hadn’t missed any points. When I looked back on p4, I stared at my sad little 8 marks and thought I could do better than that. And just like that, an idea popped into my mind and I got an additional 11 marks. In the last few minutes, I squeezed out another 12 marks from p3 by combining my ideas. And somehow, I actually made it to the silver cut-off for day 1, I was satisfied.
July 17: Activities
After visiting Asia School of Business for a talk about generating models as well as having lunch with Dr Ong, we toured a secret garden (in other words, ‘touching grass’). We then went to Sunway Velocity for a 3 hour karaoke session and our throats died. [ RY: There was an awkward moment when Bee Han and Mr Wan weren’t paying attention when the lift doors opened. I said (loudly, in the crowded lift) “Uncle, Auntie”, and they turned their heads towards us and I got told off for being rude. :C ] We then ate dinner and went back to sleep early for day 2.
July 18: Contest Day 2
Ru Ying:
I was really disappointed by my day 1 performance on A, so I reminded myself to not overthink A and go for the AC solution instead of individual subtasks. My intuition was to set a target sum (mod ) and let all strings be congruent to this target sum (mod ), so I implemented this observation. When my submission received 50/100, I constructed the solution by using recursion to move the pins such that they are parallel with this target until all pins have exactly one string attached, before checking the next string. It worked and I was the 10th person to AC A. I spent around 2.5 hours on B and was overconfident that I could AC it - but my solution was bugged because I was finding the maximum at the end of two dijkstra’s; if I had embedded results from the first dijkstra in the second I would have gotten the AC. Fortunately, I got decent partials on C and D by spending around 40 minutes on each, placing me in low silver for day 2. I got two subtasks for both C and D — C by using two pointers and D by construction. In the second half of the competition, I started feeling extremely frustrated that I couldn’t AC B and thought that I was doing worse than day 1, which was not true. I am satisfied with my overall performance as I was aiming for bronze and I had achieved my target.
Jun Di:
Learning from the experience of Contest Day 1, I decided this time to fully solve the first problem (AC it) before looking at the others. Unfortunately, this mindset ended up backfiring.
Since we couldn’t see the scoreboard during the contest, I had no idea how far others had progressed. I assumed everyone else had probably already solved the first problem, so I stubbornly stuck with it for four whole hours.
In the end, I ended up wasting a lot of time, missing out on many smaller subtasks, and didn’t even get around to reading problems three and four.
If I were to sum up today’s contest, I’d say that next time I should read through all the problems first and write out the brute-force solutions before committing to fully solving any single easy problem.
Hui Qing:
I again started with Problem A, spending 52 minutes to obtain 50 marks by finding the minimum number of steps required to restring the harp. Afterwards, I moved on to Subtask 1 of Problems B, C, and D, similar to Day 1. For Problem B, I attempted to brute-force the “IMO” case but miscounted, losing 10 marks. In Problem D, I only managed 6 marks in the first subtask. Ru Ying later informed me that the second subtask (line) could have been solved using the same method as the first, resulting in a missed opportunity for additional marks (less than 9).
After reviewing all questions, I believed I could achieve an AC on Problem A, so I spent about another hour on it, only gaining an additional 15 marks, bringing my total for A to 65 marks. (Mr. Wan later mentioned that everyone was stuck at 65 marks for A, so I shouldn’t have spent so much time on it.) I then shifted to Problem B, attempting to use a double BFS from 0 and N-1. I thought adding the results from “i to N-1” and “0 to the node before reaching N-1” might solve more subtasks. However, with only 5 minutes left, I realised I had insufficient time to implement this approach after the two BFS runs. In those final minutes, I quickly looked at Problem C and identified a bug in my code. Unfortunately, as soon as I began debugging, the time ran out.
In conclusion, I was 4 marks short of an honourable mention and 21 marks shy of a Bronze medal, both of which I believe were within my reach.
I was disappointed by my overall results.
Hua Jun:
The Day 2 contest was a pure disaster. I tried to go for full marks on p1 but only managed 65 marks in the first hour. I got super stressed because I thought I needed to AC p1 no matter what. Eventually, I calmed myself down and decided to work on the other three questions instead, as I knew my mental state wasn’t going to get me any further if I kept forcing it. I had some ideas on IMO (p3) subtask 1, but I thought it’d be a waste of time, so I coded for subtasks 1 and 2 together instead and managed to do it within half an hour. P2’s subtask 1 is just math, and subtask 2 is Dijkstra, so I collected those points quickly and shifted focus back to p1 and p4. I debated whether to debug my p1 solution or continue on p4, and I picked p4 since I’d already sunk too much time on p1. BIG REGRET. If I’d full-scored P1, I could’ve stayed in the silver cut-off. In the end, I ended up in the bronze cut-off after combining Day 1 and Day 2. Still, I did hit my goal of medalling, so that counts for something (brainwashing myself)! Also, shoutout to Ru Ying who AC-ed P1 in the first 47 minutes of the contest. She’s so godded.
July 19: Closing Ceremony
We watched anime and gossiped from 9:30pm to 11:00am. Hui Qing and Jun Di went to sleep at 3:00am, Bee Han went back to her room at 6:30am, and Hua Jun gave in to sleep at 8am, while Mr Wan and Ru Ying won the battle against sleep. In the evening, we went out to try an escape room, ate dinner and sang karaoke for another 2 hours before viewing the closing ceremony. Although some of us were sad about missing cutoffs, we did pretty well for our first participation.
July 20: Departure
We tidied the Airbnb, unrenovated the living room, packed our luggages and went home.