<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://ioimalaysia.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://ioimalaysia.org/" rel="alternate" type="text/html" /><updated>2026-07-28T15:56:14+00:00</updated><id>https://ioimalaysia.org/feed.xml</id><title type="html">MIPS | Malaysian Informatics And Programming Society</title><entry><title type="html">IOI 2026 Team Announced!</title><link href="https://ioimalaysia.org/news/2026/05/ioi-2026-team-announced/" rel="alternate" type="text/html" title="IOI 2026 Team Announced!" /><published>2026-05-31T00:00:00+00:00</published><updated>2026-05-31T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2026/05/ioi-2026-team-announced</id><content type="html" xml:base="https://ioimalaysia.org/news/2026/05/ioi-2026-team-announced/"><![CDATA[<p>The 38th International Olympiad in Informatics
<a href="https://ioi2026.uz/">IOI 2026</a> will be held in Tashkent, Uzbekistan on 9-16 August 2026.</p>

<p>Here are the members of the Malaysian Team:</p>

<ul>
  <li>Yuichiro Furuse</li>
  <li>Khor Yan Xun</li>
  <li>Ho Janson</li>
  <li>Isaac Hew Kai Sheng</li>
</ul>

<p>We wish the team all the best!</p>

<h2 id="selection-metric">Selection Metric</h2>

<p>Contest scores are available here: <a href="https://docs.google.com/spreadsheets/d/16i1jMt6_YKu2kx16yLhajU8J_olrnstn2K_V4J3mmQQ/edit?usp=sharing">IOI 2026 Contest Scores</a></p>

<p>The Top 3 were selected by sum of APIO and SEATST scores per our (new) <a href="/ioi-selection/#selection-criteria">selection criteria</a>.</p>

<p>Isaac was an exception: he was absent on SEATST Day 2 due to an emergency medical leave,
hence getting 0 points on that day. Despite this, he was only 12
points away from being 4th place, which was achievable by solving easy subtasks on
Day 2. We think this justifies an exception to include him in the team.</p>]]></content><author><name>MIPS</name></author><summary type="html"><![CDATA[The 38th International Olympiad in Informatics IOI 2026 will be held in Tashkent, Uzbekistan on 9-16 August 2026.]]></summary></entry><entry><title type="html">MCC 2025 Registration Open and Instagram account</title><link href="https://ioimalaysia.org/news/2025/09/mcc-2025/" rel="alternate" type="text/html" title="MCC 2025 Registration Open and Instagram account" /><published>2025-09-27T00:00:00+00:00</published><updated>2025-09-27T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2025/09/mcc-2025</id><content type="html" xml:base="https://ioimalaysia.org/news/2025/09/mcc-2025/"><![CDATA[<p>MCC 2025 registration is now open! Please see the
<a href="/competition/mcc/2025/">MCC 2025 webpage</a> for more information.</p>

<p>Also, we have an <a href="https://www.instagram.com/ioi_malaysia/">Instagram account</a> to which
we will post updates about our competitions, including MCC. Follow us to keep updated!</p>]]></content><author><name>MIPS</name></author><summary type="html"><![CDATA[MCC 2025 registration is now open! Please see the MCC 2025 webpage for more information.]]></summary></entry><entry><title type="html">IOI 2025, Sucre, Bolivia - 3 Bronze 1 Gold!</title><link href="https://ioimalaysia.org/news/2025/09/ioi-2025/" rel="alternate" type="text/html" title="IOI 2025, Sucre, Bolivia - 3 Bronze 1 Gold!" /><published>2025-09-19T00:00:00+00:00</published><updated>2025-09-19T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2025/09/ioi-2025</id><content type="html" xml:base="https://ioimalaysia.org/news/2025/09/ioi-2025/"><![CDATA[<ul id="markdown-toc">
  <li><a href="#day-01-arrival" id="markdown-toc-day-01-arrival">Day 0–1: Arrival</a></li>
  <li><a href="#day-2-practice--opening-ceremony" id="markdown-toc-day-2-practice--opening-ceremony">Day 2: Practice + Opening Ceremony</a></li>
  <li><a href="#day-3-excursion-city-tour" id="markdown-toc-day-3-excursion-city-tour">Day 3: Excursion (City Tour)</a></li>
  <li><a href="#day-4-contest-day-1" id="markdown-toc-day-4-contest-day-1">Day 4: Contest Day 1</a></li>
  <li><a href="#day-5-excursion-castle-and-padel" id="markdown-toc-day-5-excursion-castle-and-padel">Day 5: Excursion (Castle) and Padel</a></li>
  <li><a href="#day-6-contest-day-2--talent-night" id="markdown-toc-day-6-contest-day-2--talent-night">Day 6: Contest Day 2 + Talent Night</a></li>
  <li><a href="#day-7-closing-ceremony" id="markdown-toc-day-7-closing-ceremony">Day 7: Closing Ceremony</a></li>
  <li><a href="#day-8-departure" id="markdown-toc-day-8-departure">Day 8: Departure</a></li>
</ul>

<h2 id="day-01-arrival">Day 0–1: Arrival</h2>

<p>Yan Xun:</p>

<p>This year’s journey was especially long, as we had to take five flights spanning about 40 hours to reach Sucre. The
first two legs went smoothly. Upon arriving in Santa Cruz, Bolivia after the third leg, we were all worried as we had
less than half an hour to make our next flight. To make matters worse, we were informed we had to complete our visa
in Santa Cruz instead of upon arrival in Sucre. Thankfully, there were multiple IOI staff (who were unfortunately not
very fluent in English) at the airport to help us out. We boarded the plane 7 minutes before the scheduled departure
time and arrived in Sucre at 9pm local time. We were greeted with applause from some IOI staff and we were handed
Bolivian flags. After a long, arduous journey, we arrived at our accommodation, Villa Bolivariana at 10:30pm local
time. Two delegations shared a room, and we were assigned to share a room with the Colombian team.</p>

<figure>
<img alt="day-0-malaysia-departure" src="/assets/img/2025/ioi/day-0-malaysia-departure.jpg" width="3024" height="4032" title="Day 0: Departure from Malaysia" loading="lazy" />

<figcaption>Day 0: Departure from Malaysia</figcaption>

</figure>

<figure>
<img alt="day-1-bolivia-arrival" src="/assets/img/2025/ioi/day-1-bolivia-arrival.jpg" width="4624" height="2604" title="Day 1: Arrival at Bolivia" loading="lazy" />

<figcaption>Day 1: Arrival at Bolivia</figcaption>

</figure>

<h2 id="day-2-practice--opening-ceremony">Day 2: Practice + Opening Ceremony</h2>

<p>Yan Xun:</p>

<p>We started the day with the practice contest. We had to wait outside the contest hall for over an hour before entering,
and the practice contest had to be delayed by 15 minutes. The provided keyboards were in Spanish layout, which was quite
different from what we are used to. Yan Xun and Chang Jun had brought their own keyboards, Isaac was fine with using the
Spanish keyboard (orz Isaac), whereas Shao Qian and Jun Xing tried to help Yuichiro remap the keyboard layout. Jun Xing
also taught us to use the provided compile.sh and submit.sh files. Many team leaders were going out to buy US layout
keyboards for their contestants, so we managed to get two keyboards, one each for Isaac and Yuichiro.</p>

<p>We had lunch and took the bus to the opening ceremony venue, the Biblioteca. We were greeted outside the venue by some
performers in traditional Bolivian clothing playing some local instruments and dancing. We had to wait about half an
hour for everyone to arrive before the opening ceremony began. Then there were more speeches, more dancing and a violin
performance. <del>(I (Yan Xun) was constantly dozing off due to jet lag)</del> After that, each delegation was called in
alphabetical order and displayed on the screen. Most countries waved to the camera, while some threw items towards the
crowd. This entire process had to be repeated because apparently some countries weren’t called the first time.
We commuted back to the hostel to rest. That night, we were informed that my keyboard was rejected, which caused me to
worry for a while. Luckily, we managed to buy a keyboard from the Polish team so our entire delegation could use US
layout keyboards.</p>

<figure>
<img alt="day-2-opening" src="/assets/img/2025/ioi/day-2-opening.jpg" width="4624" height="2604" title="Day 2: Opening Ceremony" loading="lazy" />

<figcaption>Day 2: Opening Ceremony</figcaption>

</figure>

<figure>
<img alt="day-2-practice" src="/assets/img/2025/ioi/day-2-practice.jpg" width="2047" height="2047" title="Day 2: Practice" loading="lazy" />

<figcaption>Day 2: Practice</figcaption>

</figure>

<h2 id="day-3-excursion-city-tour">Day 3: Excursion (City Tour)</h2>

<p>Yan Xun:</p>

<p>We left the hostel at 8:30am for a half-day city tour of Sucre. We had a tour guide bring us around, explaining the
historical significance behind the locations. When our bus arrived at the city centre, we were greeted by some
enthusiastic zebra mascots (who were there for the 200th anniversary of Bolivia). First, we were brought to the rooftop
of a governmental building overlooking the city. We were given a few minutes to enjoy the view and take pictures.</p>

<p>While walking to our next location, we spotted a roadside newspaper seller, with IOI making the headlines of that day’s
newspaper. We bought a few copies as souvenirs (day 1 p1 reference!!).</p>

<p>We then visited Casa de la Libertad, with portraits and statues of the founding fathers, as well as all the presidents
in Bolivia’s history. After that, we visited Plaza 25 de Mayo, which was a square in the city center, Casco Viejo. There
was a statue of Simon Bolivar in the middle of the square, who led Bolivia to its independence. The team leaders tried
juice from a nearby street side fruit juice vendor.</p>

<p>The bus then picked us up to bring us to Simon Bolivar park, the biggest park in Sucre (which was unfortunately quite
small), where all of us got ice cream. Finally, we ended the excursion at La Ricoleta, the oldest part of Sucre with
lots of Spanish colonial buildings. We entered an indigenous museum, which had a focus on ancient textiles made of
alpaca and llama wool.</p>

<p>We had free time all the way until the end of the day, so we were worried we would have nothing to do for such a long
time. After resting in the room for a short while, Chang Jun and I decided to walk around and see if there was anything
going on. We saw some sponsors waiting to set up lego sets around on the ground floor. While waiting, we talked to an
ex-IOI gold medalist from China, who was at this year’s IOI as a sponsor representing OpenAI. We spent the next few
hours building a (rip-off) lego motorbike with contestants from other countries, before going back to our room to rest
early for the first contest day.</p>

<figure>
<img alt="day-3-roof" src="/assets/img/2025/ioi/day-3-roof.jpg" width="4032" height="3024" title="Day 3: Rooftop Photo" loading="lazy" />

<figcaption>Day 3: Rooftop Photo</figcaption>

</figure>

<figure>
<img alt="day-3-lego" src="/assets/img/2025/ioi/day-3-lego.webp" width="1709" height="1282" title="Day 3: Lego Motorbike" loading="lazy" />

<figcaption>Day 3: Lego Motorbike</figcaption>

</figure>

<h2 id="day-4-contest-day-1">Day 4: Contest Day 1</h2>

<p>Tasks: souvenirs, triples, worldmap</p>

<details>
<summary>Isaac</summary>
<div>

    <p>After reading through the problems, I tackled problem 2, Triples, first. I figured out that there were 6 cases, one for
each permutation of distances. I implemented 5 of these cases in \(O(n \log n)\), with the remaining case needing quadratic
time. After some debugging, this earned me 34 points, including the subtask where \(N \le 50,000\), even though that
shouldn’t have been able to pass in quadratic time. Removing the quadratic case, I gained 11 more points from subtask 4.
I would get subtask 2, worth only 6 points, later.</p>

    <p>I moved on to problem 3, World Map. Using a tour of the vertices, I divided the grid into vertical strips of length 3,
getting a basic \(R=6\) solution, giving 58 points for what I felt was for free.</p>

    <p>I finally decided to get some points on problem 1, Souvenirs. When I first read the problem, I thought that you would
get as many copies of a souvenir as possible, which would be impossible to solve. Re-reading the problem, I found that
each transaction could actually only give at most one souvenir of each type. I skipped the subtasks, as they felt too
easy. I made the observation that querying the average price of a group of souvenirs would never yield the highest
priced souvenir, but would get one relatively low-indexed souvenir. This would get me an AC. I implemented my solution,
modifying the grader to log the transactions, and submitted my solution, which immediately passed.</p>

    <p>After solving problem 1, I had over 200 points. I wondered if I could surpass 250 points on the first day alone. I spent
some time on the output only section on Problem 2, earning 8.8 points using beam search and simulated annealing.</p>

    <p>I returned to problem 3, optimising my solution slightly, to \(R=4\), though I expected it to have \(R=5\) instead, so I didn’t
submit it. I then explored the idea of using nested L shapes, where only one of the sides needed to be of width 3,
increasing each dimension by 2 on average. Submitting my solution, I did not expect to get 86 points, my solution
attaining \(R=3\), instead of the 72 I had intended to get.</p>

    <p>In the remaining time, I was unable to get any more points on Problem 2, but I implemented the 6 point subtask on
problem 2, submitting my solution only 12 minutes before the contest ended.</p>

    <p>My score for Day 1 was 100 - 59.8 - 86, a total of 245.8 points, putting me at 18th place overall, and 13 points above
the gold medal cutoff for the day. I suspected that my performance for Day 1 was because all the problems were ad hoc,
just like the APIO this year.</p>

  </div>
</details>

<details>
<summary>Yan Xun</summary>
<div>

    <p>I had changed my strategy slightly compared to last year, and decided to spend 40 to 50 minutes per problem in
sequential order so I wouldn’t miss any extremely easy ideas due to overcommitting on one problem. Working down the
problems in the order they were listed, I wrote down as many observations as I could make and grabbed the easy subtasks.
On problem 1 (souvenirs), I managed to grab 39 points with some simple casework. I had a few ideas that could
potentially lead to a full solution, but at that time 50 minutes had passed so I proceeded to problem 2.</p>

    <p>There was an obvious \(O(N^3)\) brute force solution to p2 by simply iterating over every triplet. Not long after, I figured
that if we fixed the leftmost and rightmost element of the triplet, there can only be \(O(1)\) amount of candidates for the
middle element, giving an \(O(n^2)\) solution. I implemented this within 10 minutes, giving me 18 points. I also knew how to
do subtask 2, but I put off the implementation as it was only worth 6 points. I then turned to the output only section
of the problem, which was worth 30 points. I failed to find a construction after a while, so I wrote a simulated
annealing solution giving me 7.86 points. At that point, 1 hour and 40 minutes had passed, so I moved on to p3.</p>

    <p>First of all, I noticed that the problem never mentioned that the graph was connected, yet there was an \(M = N-1\) subtask.
I spent 5 minutes proving that the graph must be connected, then worked down the special case subtasks (the graph is a
path, the graph is a tree, the graph is complete). I quickly figured out an Euler tour solution for the tree case, but I
did not implement it yet as solving the general case (even with an inefficient solution) instantly yields 58 points,
including all the special case subtasks. I figured that I could extend my solution for the tree case into the graph case
in about 5 minutes. First, I implemented the tree case solution to verify my idea, giving me 15 points. I took another
13 minutes to implement my general solution, which was worth 72 points. At this point, half the contest time had
elapsed, and unbeknownst to me at the time, I was above the gold cutoff.</p>

    <p>For the second half of the contest, my strategy was to work on the subtasks/full solutions that seemed the most doable.
Since I had a few unfinished ideas from p1 earlier, I decided to revisit them and see if they got anywhere. I
implemented a solution to the second last subtask that seemed correct and realised it got WA on my hand written test
case. I realised the solution was completely wrong, and after a few more failed ideas, I gave up and turned to p2.
I quickly finished off the 6 point subtask from p2 in 2 minutes by modifying my \(O(N^2)\) solution. Subtask 4 hinted at
doing some casework based on the relative ordering of the elements of the triplets, so I began systematically figuring
out each of the cases. There were 6 cases in total, and I had already figured out the \(O(N)\) solution to 4 of them while
solving the early subtasks. After about 10 minutes of thinking, I managed to come up with a solution to the 5th case,
giving me the illusion that I was really close to a full solution. The 6th case seemed perfectly symmetrical to the 5th
case, so I spent 30 minutes trying to find the symmetry. I then wrote out a few equations representing the cases, and I
realised the 6th case was special because there was no overlap in variables. I spent another 30 minutes drowning in
algebra, desperately trying to find an invariant that would result in an \(O(N)\) solution (turns out I was constantly
trying to run through a brick wall, since the number of solutions to the last case was bounded by \(O(N \sqrt{N}))\). I
quickly ran a few more runs of simulated annealing, modifying various parameters, increasing my score by about 2 more
points.</p>

    <p>Since only 50 minutes of contest time remained, I decided to go back to p3 and p1 to ensure that I didn’t miss any easy
ideas. I spent 10 minutes on each problem, making no significant progress. I did think of rotating the square 45 degrees
for p3 (which was the solution to 86 points!), but due to time pressure and p2 constantly on the back of my mind, I did
not figure out the details, and concluded that rotating the square would not result in a better solution.</p>

    <p>I ran my simulated annealing code for p2 a few more times, but no better solutions were generated. I spent 15 more
minutes thinking of the full solution to p2, and finally, in the last 7 minutes of the contest, I decided to implement a
solution that would probably TLE but maybe pass the \(N \le 50000\) subtask as a last resort. I made two submissions, but both
had bugs due to double counting. I ended the day with a score of \(39+45.14+72=156.14\), feeling quite disappointed as I
couldn’t make any significant progress for the second half of the contest. I finished day 1 in 115th place, in mid-high
bronze.</p>

    <p>During the analysis session, I talked to a member of the Thai team, and found we had really similar scores and
experiences (both of us gained no points in the second half). I got comical reactions from him and Jerome from the
Filipino team when I explained the 86 point solution to p3, which seemed extremely obvious once mentioned. I also learnt
from them that a lot of \(O(N^2)\) solutions passed the \(N \le 50000\) subtask for p2, which made me regret not coding my last
resort solution sooner.</p>

  </div>
</details>

<details>
<summary>Yuichiro</summary>
<div>

    <p>Before the contest started, I was very nervous since it was my first time at an International Olympiad. Once the contest
started, I read through all the problems statements and started with problem 2 where I solved 2 of the easy subtasks
worth 18 points with an \(O(N^2)\) solution and tried the output only section but I didn’t find any construction so I just
used beam search, which got me 8.21 points.</p>

    <p>I moved on to problem 1 where I did the easy subtasks which got me 39 points. I made the observation that the average
price of a group of souvenirs is less than the most expensive souvenir in the group but I didn’t think it’d work since
it would skip souvenirs which are more expensive than the average price but less expensive than the most expensive
souvenir.</p>

    <p>I then moved on to problem 3, where I did subtasks 1, 3 and 4 which got me 20 points. I returned to problem 2 and ran my
beam search code again but it only got me 1.15 more points so I returned to problem 3 and solved subtask 2 worth 10
points by making a world map that looks like the tree and I only realised later in the contest that this was equivalent
to an Euler tour which I could have implemented much faster.</p>

    <p>I returned again to problem 2 to solve subtask 2 worth 6 points and ran my beam search code again which got me 0.16 more
points.</p>

    <p>I returned to problem 3, where I thought of an R=4 solution worth 72 points which involved modifying my solution to
subtask 2 but because of my bad implementation for subtask 2, it took me a long time to debug and by the time I had
finished debugging, I only had half an hour left.</p>

    <p>I then solved subtask 4 for problem 2 worth 11 points, which was also an easy subtask. After this, I only had 7 minutes
left so I just ran my beam search code again but didn’t get any more points.</p>

    <p>I ended the day with \(39+44.52+72=155.52\) points, putting me in 118th place and 15 points above the bronze cutoff which I
was quite happy with. I think I should have spent less time on the output only section of problem 2 since it was only
worth 30 points and I got 9.52 points from it.</p>

  </div>
</details>

<h2 id="day-5-excursion-castle-and-padel">Day 5: Excursion (Castle) and Padel</h2>

<p>Jun Xing:</p>

<p>We were brought to visit a castle. Personally, the castle was not fascinating. Our tour guide showed us around for about
an hour until 10am, then announced that it is free time until 1:30pm. Shao Qian and I sat down in the garden for tea
break and chatted with other leaders (e.g. Indonesia) and sponsors (HRT).</p>

<p>Later we saw that contestants were broken into teams for a sporty competition. One of the events were people lining up
and having someone crawling under their legs. The competition ended with capture the flag. While the contestants were in
the event, Shao Qian and I found a dog in the garden. We didn’t know whose dog it was, but it loved to fetch sticks that
we threw, sometimes holding it tightly in its mouth like its credit card information. I had lots of fun playing fetch with the dog.</p>

<p>We had free time in the evening. Mateo (our tour guide) brought our contestants to play Padel, a sport that looks like
a squash-tennis-pickleball hybrid. It turned out that Mateo organised a match with Belgium, and they were a lot
better than us. We still had fun however. It was good to do light exercises (because we couldn’t make the games last very long…)
before the contest tomorrow.</p>

<figure>
<img alt="day-5-padel" src="/assets/img/2025/ioi/day-5-padel.jpg" width="4160" height="3120" title="Day 5: Padel" loading="lazy" />

<figcaption>Day 5: Padel</figcaption>

</figure>

<h2 id="day-6-contest-day-2--talent-night">Day 6: Contest Day 2 + Talent Night</h2>

<p>Tasks: festival, migrations, obstacles</p>

<details>
<summary>Isaac</summary>
<div>

    <p>To start, I focused on problem 1 of the contest day, Festival. I started implementing a 27 point \(O(n^3)\) DP solution,
sorting each type of coupon in increasing order of price. However, when I submitted my program, it was already 50
minutes into the contest. I read problems 2 and 3, problem 3 seeming to be easy enough to get all but the final subtask.
I used DSU and segment tree, eventually getting my 83 points halfway through the contest.</p>

    <p>I went back to problem 1, observing that for subtask 6, you can buy very few coupons not of type 1 without running out
of tokens. I modified my subtask 4 solution to work with subtask 6, and got 16 more points.</p>

    <p>This late into the contest, I had to make sure I kept up my score, so I moved to problem 2, unable to think of any
solution for the main subtask, so I did subtask 1, gaining 30 more points.</p>

    <p>For the rest of the contest, I tried to claim the remaining subtasks of problem 1. Using a few equations, I observed
that there was an order for which coupons to buy. I only realised much later that this order was the fixed point of the
number of tokens for each coupon, such that buying it would not change the number of tokens you had. Hoping I would AC,
I instead just solved subtask 6, 12 minutes before the end of the contest. Remembering that my DP solution could stop
after any number of coupons not of type 1, type 1s always being the last, I copy and pasted the section of code in,
submitting it with only 3 minutes left. I refreshed the page, the timer ticking down, until I saw my score increase by
12, my submission passing subtask 3.</p>

    <p>My score for day 2 was 82 - 30 - 83, or 195 points. My overall score was 440.8 points, placing me at rank 27, within the
gold medal range by only 4 points and 2 places. I feared that I would lose my medal, just like in 2022, but Shao Qian
assured me that I was safe. It turned out that I was very close to losing my gold medal, my last submission 3 minutes
before the end of the contest boosting me from 29th to 27th place.</p>

    <p>During the closing ceremony, I would learn that Heng Liao, the gold medallist exactly on the cutoff, also barely made it
to gold, gaining 12 points slightly earlier than me, This in turn pushed me into 29th place, leading to my gold medal
clutch.</p>

  </div>
</details>

<details>
<summary>Yan Xun</summary>
<div>

    <p>Knowing that I was 25 points below the silver cutoff for day 1, I decided to take a risk for day 2’s strategy by
spending most of my time on the communication problem which I expect to perform better on than the batch problems,
maximising my chance to end up with a silver. Even if this strategy failed, I would still be able to secure a bronze by
grabbing subtasks.</p>

    <p>Since the first problem was a batch problem, I decided to spend 50 minutes on it as per my usual strategy. I grabbed the
24 point greedy subtask within 30 minutes, then started thinking of some simple greedy strategies that could potentially
work for an AC/partial solution. I spent 20 minutes implementing and submitting them, but all of them got WA.</p>

    <p>The second problem was a really fun communication problem, and it was clearly a problem that I could do well on. I first
spent 30 minutes thinking of and implementing the solution for subtask 1, giving me 30 points. Soon after, I found that
extending the solution to subtask 1 works for subtask 2 as well, and spent 30 minutes planning out a three-phase
solution using ternary and binary encoding, worth 77 points. However, there was an overwhelming amount of implementation
and casework going into this solution, and having to pay attention to so many details caused me to get WA 11 times over
the next hour. In the process, I had to generate many different test cases that broke my code, as it was impossible to
test the complicated casework covered in my code with a single test case. Since there were less than 2 hours remaining
in the contest, I decided to put the problem off and grab some subtasks on problem 3.</p>

    <p>I quickly identified 3 doable subtasks for problem 3, gaining 23 points by constructing the graph and doing a bfs, then
another 14 points using a prefix sum. This took a total of 20 minutes. I spent 10 more minutes on the problem making no
useful observations, so I went back to debugging my code for problem 2.</p>

    <p>After 10 more minutes of debugging, I found a test case which I mistakenly thought that my solution couldn’t solve at
all (turns out I just didn’t handle the casework properly and I fixed the bug within 10 minutes of the analysis
session). I found a quick fix by converting to full binary encoding, a solution worth 72 points which I implemented in
20 minutes by modifying my initial code. I was surprised that a much simpler solution like this one with significantly
less casework was worth so many points, and realised I shouldn’t have time sinked on a much more complex solution.</p>

    <p>For the last 20 minutes of the contest, I tried to hopefully grab a subtask or two on p1. I quickly realised that an
exchange argument could be probably used, but I somehow didn’t think of simply writing a comparator (solving the N=2
case) and sorting for an easy 27 points for the subtask where the answer is a permutation. Reading the condition for
subtask 6, I also quickly realised by working on some cases by hand that there can only be at most \(\log(\max A)\) decreases
in \(A\) before it reaches 0. Despite making all the observations required for the full solution, I didn’t have enough time
to implement anything, and I also did not realise DP could be used to grab subtask 4 as well as the AC solution.</p>

    <p>I ended day 2 with a score of \(24+72.89+37\), totalling to 133.89 points. I knew I would place quite low for this contest
day as problem 1 wasn’t too hard, and there are relatively simple solutions for above 60 points on problem 2. I should
have analysed the scoring function for problem 2 more carefully before implementing my best solution, as that would’ve
saved me a lot of time. Thankfully, I was able to secure a bronze medal overall.</p>

  </div>
</details>

<details>
<summary>Yuichiro</summary>
<div>

    <p>Before the start of the contest, I was again nervous because I wanted to get at least a bronze medal. I started with
problem 3, where I implemented a simple \(O(MN)\) solution using DSU to solve subtasks 1 and 3 which got me 23 points.</p>

    <p>I then moved on to problem 2, but I didn’t realise that subtask 1 had partial scoring so I submitted a solution which I
thought would get 30 points but only got me 10 points.</p>

    <p>I moved on to problem 1, where I did the first 3 subtasks which got me 24 points and should have been easy but I took a
long time to debug because I forgot about overflow errors.</p>

    <p>I moved back to problem 3 to solve subtask 2 using DSU which got me 14 more points.</p>

    <p>I then returned to problem 2, where I noticed that I could just not send any messages until near the very end and then
just send the answer in binary which got me the 30 points which I had expected earlier. I realised that this would also
work for subtask 2, just by sending the 2 nodes in binary one after the other, and after implementing, it got me 72.89
points. I then noticed that when sending the first node I could use quaternary instead of binary which got me 6.22 more
points.</p>

    <p>I returned to problem 1, where I implemented an \(O(N^4)\) solution for subtask 4 using DP which got me 15 more points. I
then tried some greedy solutions for subtask 5 but they didn’t work.</p>

    <p>I then spent a lot of time thinking of a solution to subtask 5 or 6 for problem 1 but I couldn’t think of any so I moved
back to problem 2 and added some randomness to my solution, since sending 0 doesn’t count as a message, which got me
1.06 more points. I spent the rest of my time thinking of a solution to subtask 5 or 6 for problem 1 but I couldn’t
think of any and while I was thinking, I was also repeatedly submitting my RNG solution for problem 2 which got me 2.28
more points.</p>

    <p>I ended the contest with \(39+44.52+72+39+82.45+37=313.97\) points over both days which put me in 106th place, in high
bronze, 24.04 points below the silver cutoff. Later when I heard the solution for problem 1 subtask 5 worth 27 points, I
thought it was very obvious and was frustrated that I didn’t find it during the contest since it would have put me just
above the silver cutoff. Overall, I was happy since I didn’t expect to be anywhere near silver.</p>

  </div>
</details>

<h2 id="day-7-closing-ceremony">Day 7: Closing Ceremony</h2>

<p>Jun Xing:</p>

<p>Before the closing ceremony, we had our final GA meeting. Halfway through the meeting, we were given a pleasant
surprise: an alpaca handler walked his alpaca around the room. The alpaca got stopped at the back of the meeting room
by a crowd of team leaders, and we got to feed and pet the alpaca! (while the treasurer’s report was ongoing…) The
alpaca’s wool was very soft.</p>

<p>This was Malaysia’s best result ever: We had our second all-medal year and our second gold! Congratulations to Chang
Jun, Yan Xun and Yuichiro for winning bronze, and Isaac Hew for winning gold.</p>

<p>The closing ceremony went overtime and we were looking forward to the dinner, hoping it will be better than usual.
Somehow, only after an hour, we were served our first appetizer, and 20 minutes later another appetizer. There was a
whole ballroom of people bored and starved.</p>

<p>We decided to skip the dinner and go to the night market we learned about on Day 3. Coincidentally, gold medallists were
called to get a prize from a sponsor. Congratulations to Isaac for getting money as a scholarship award from CodeMao!
After that, we needed to get enough people to fill in a bus to go back.</p>

<p>The night market was fun. Mateo came to be our translator and currency exchange. We bought many alpaca plushies, had
night market food (we were given free extra chicken!), and played foosball. We then went to the city center, watched a
band perform for Bolivia’s 200th independence day.</p>

<figure>
<img alt="day-7-alpaca" src="/assets/img/2025/ioi/day-7-alpaca.jpg" width="4624" height="2604" title="Day 7: With Alpaca" loading="lazy" />

<figcaption>Day 7: With Alpaca</figcaption>

</figure>

<figure>
<img alt="day-7-closing" src="/assets/img/2025/ioi/day-7-closing.jpg" width="4032" height="3024" title="Day 7: Closing" loading="lazy" />

<figcaption>Day 7: Closing</figcaption>

</figure>

<figure>
<img alt="day-7-night-market" src="/assets/img/2025/ioi/day-7-night-market.jpg" width="4624" height="2604" title="Day 7: Night Market" loading="lazy" />

<figcaption>Day 7: Night Market</figcaption>

</figure>

<h2 id="day-8-departure">Day 8: Departure</h2>

<p>Jun Xing:</p>

<p>We left early in the morning as our flight was at 10am. Our first leg was once again delayed. Fortunately, we had no
issues as our next flight was by the same airline (but some delegations missed their flight due to this). This time, we
had time to explore the Doha and Sao Paulo airports. Food was very expensive. We safely arrived in Malaysia after
another 40 hours of flight.</p>]]></content><author><name>IOI 2025 team</name></author></entry><entry><title type="html">EGOI 2025, Online</title><link href="https://ioimalaysia.org/news/2025/07/egoi-2025/" rel="alternate" type="text/html" title="EGOI 2025, Online" /><published>2025-07-26T00:00:00+00:00</published><updated>2025-07-26T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2025/07/egoi-2025</id><content type="html" xml:base="https://ioimalaysia.org/news/2025/07/egoi-2025/"><![CDATA[<h2 id="introduction">Introduction</h2>

<p>The <a href="https://www.egoi2025.de/">5th European Girls’ Olympiad in Informatics (EGOI) 2025</a> 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.</p>

<h2 id="july-14-arrival">July 14: Arrival</h2>

<p>“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.</p>

<figure>
<img alt="july-14-activities" src="/assets/img/2025/egoi/image2.png" width="1920" height="960" loading="lazy" />

</figure>

<h2 id="july-15-practice-session">July 15: Practice Session</h2>

<p>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!</p>

<figure>
<img alt="july-15-activities" src="/assets/img/2025/egoi/image5.png" width="1920" height="960" loading="lazy" />

</figure>

<h2 id="july-16-contest-day-1">July 16: Contest Day 1</h2>

<p>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.</p>

<figure>
<img alt="july-16-activities" src="/assets/img/2025/egoi/image3.png" width="1920" height="960" loading="lazy" />

</figure>

<h3 id="ru-ying">Ru Ying:</h3>

<p>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.
\([ 100 + 57 + 14 + 19 = 190 ]\)</p>

<h3 id="jun-di">Jun Di:</h3>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<h3 id="hui-qing">Hui Qing:</h3>

<p>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</p>

<h3 id="hua-jun">Hua Jun:</h3>

<p>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. \([ 100 + 57 + 48 + 19 = 224 ]\)</p>

<h2 id="july-17-activities">July 17: Activities</h2>

<p>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.</p>

<figure>
<img alt="july-17-activities" src="/assets/img/2025/egoi/image6.png" width="1920" height="960" loading="lazy" />

</figure>

<h2 id="july-18-contest-day-2">July 18: Contest Day 2</h2>

<figure>
<img alt="july-18-activities" src="/assets/img/2025/egoi/image4.png" width="1920" height="960" loading="lazy" />

</figure>

<h3 id="ru-ying-1">Ru Ying:</h3>

<p>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 \(2n\)) and let all strings be congruent to this target sum (mod \(2n\)), 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.
\([ 100 + 27 + 23 + 12 = 162 ]\)</p>

<h3 id="jun-di-1">Jun Di:</h3>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<h3 id="hui-qing-1">Hui Qing:</h3>

<p>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).</p>

<p>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.</p>

<p>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.</p>

<p>I was disappointed by my overall results.</p>

<h3 id="hua-jun-1">Hua Jun:</h3>

<p>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.
\([ 65 + 27 + 23 + 12 = 127 ]\)</p>

<h2 id="july-19-closing-ceremony">July 19: Closing Ceremony</h2>

<p>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.</p>

<figure>
<img alt="july-19-activities" src="/assets/img/2025/egoi/image1.png" width="1920" height="960" loading="lazy" />

</figure>

<h2 id="july-20-departure">July 20: Departure</h2>

<p>We tidied the Airbnb, unrenovated the living room, packed our luggages and went home.</p>

<figure>
<img alt="july-20-activities" src="/assets/img/2025/egoi/image7.png" width="1920" height="960" loading="lazy" />

</figure>]]></content><author><name>EGOI 2025 Team</name></author><summary type="html"><![CDATA[Introduction]]></summary></entry><entry><title type="html">IOI 2024, Alexandria, Egypt</title><link href="https://ioimalaysia.org/news/2024/09/ioi-2024/" rel="alternate" type="text/html" title="IOI 2024, Alexandria, Egypt" /><published>2024-09-15T00:00:00+00:00</published><updated>2024-09-15T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2024/09/ioi-2024</id><content type="html" xml:base="https://ioimalaysia.org/news/2024/09/ioi-2024/"><![CDATA[<h2 id="introduction">Introduction</h2>
<p>The <a href="https://ioi2024.eg/">36th International Olympiad in Informatics (IOI) 2024</a> was held in Alexandria, Egypt from 1 September to 8 September. The <a href="https://stats.ioinformatics.org/delegations/MYS/2024">Malaysian team</a> comprised Lim Chang Jun, Khor Yan Xun, Isaac Hew Kai Sheng, and Loh Kwong Weng. The team leader was Amos Tan Li Sheng and the deputy leader was Vee Hua Zhi.</p>

<h2 id="day-1-arrival">Day 1: Arrival</h2>
<p>We were all assigned to the same room, despite initially hearing that each would have only 2 or 3 beds. A team guide was appointed to help us navigate the university campus and ensure we were well taken care of throughout our stay. After settling in, we spent our first day exploring the campus and enjoying time at the Huawei Booth, which offered activities like table tennis, arcade basketball, and sudoku, along with refreshments.</p>

<figure>
<img alt="day-1" src="/assets/img/2024/report/day-1.jpg" width="4032" height="2268" loading="lazy" />

</figure>

<h2 id="day-2-practice-contest--opening-ceremony">Day 2: Practice Contest &amp; Opening Ceremony</h2>

<h3 id="chang-juns-perspective">Chang Jun’s Perspective</h3>
<p>The practice contest was a nightmare for me. Initially, I planned to use the keyboard provided by the organiser, but there’s a significant difference between the US and UK layouts, which are more common in Egypt. This threw off my muscle memory, especially with the shift key and several other symbols. Unfortunately, I hadn’t brought a backup keyboard, so I had no choice but to use the one provided.</p>

<p>We were then transferred to the Bibliotheca Alexandrina for the opening ceremony. Due to time constraints, we were told to eat on the bus, which was slightly inconvenient. The ceremony began shortly after we arrived, featuring speeches from distinguished guests and a few performances. The most interesting part was definitely the team introductions, where each contingent was mentioned and officially presented. Sadly, we weren’t able to tour the Bibliotheca as planned.</p>

<p>When I returned to the dormitory, I received great news: my team leaders, Amos and Hua Zhi, had Ubered around to find a store selling US keyboards and bought one for me. It turned out to be crucial, as subtask farming requires a lot of implementation.</p>

<figure>
<img alt="day-2-opening" src="/assets/img/2024/report/day-2-opening.jpg" width="4000" height="3000" loading="lazy" />

</figure>

<p>Malaysia boleh!</p>

<figure>
<img alt="day-2-team" src="/assets/img/2024/report/day-2-team.jpg" width="4032" height="2268" loading="lazy" />

</figure>

<h2 id="day-3-contest-day-1">Day 3: Contest Day 1</h2>
<h3 id="isaacs-perspective">Isaac’s perspective:</h3>
<p>As I entered the contest hall, I was afraid that this year’s problems would be as hard as last year’s, and that I would not be able to get a medal. I wanted to ensure I solved all the subtasks I could, so I wouldn’t fail as in IOI 2023.</p>

<p>After reading each of the problem statements, I decided to settle on problem 1, since it seemed to be impossible to get more than 10 points in P2, and problem 3’s statement was too confusing to understand at first.</p>

<p>To start, I attempted subtasks 1 to 5, when \(Q \le 5\). Sorting the artifacts by weight, I noticed that each group of artifacts with a difference at most \(D\) between the weight of each consecutive artifact could be paired up into boats completely, if there were an even number of them, otherwise an artifact with odd index within the group would be unpaired. I got only 23 points. Realising that certain even-indexed artifacts could also be skipped, I revised my solution, gaining the 67 points that I originally planned. To get the last 33 points, I sorted the queries by increasing values of \(D\), merging consecutive blocks of artifacts together when needed. This required much more implementation than the 67 point solution, but after a bit of debugging, I got my AC.</p>

<p>After P1 was done, I did subtask 1 of P2 for 10 points, then proceeded to P3, still wondering the rest of P2 was possible at all.</p>

<p>Problem 3 had another easy 10 point subtask that I immediately did, before moving to subtasks 4 and 5: \(W[i] \le 1\). As the weight for each node would be 0 or 1, I could separate the tree into subtrees composed of weight-1 nodes, where the weight-0 nodes would become leaves. Then a subtree with \(k\) nodes would contribute \(kL-R\) points, if \(R \le kL\). I gained my 18 points, moving on to subtasks 2 and 3. I implemented a solution using small-to-large merging, however it failed, not giving me any points.</p>

<p>Around 30 minutes before the contest ended, I realised that I misread problem 2: instead of being unable to control a different set of bits per packet, it was the same 15 indices of each packet that could not be transmitted properly. I encoded the controlled bits based on the bits the receiver knew to be secured. If the receiver didn’t know any, then I would just send all \(0\)s or all \(1\)s, and have the receiver record the majority of the bits. Rushing to write a solution, I managed to get one to work just 10 minutes before the end of the contest, getting me 49.61 points. I attempted to improve on this in the time I had, but in the end I couldn’t get my score any higher than that, even after submitting a solution 30 seconds after the contest had ended.</p>

<p>I scored 100 - 49.61 - 28 points, totalling 177.61 points, putting me just 6 points above the silver cutoff for day 1, which was 171.33 points. I thought about the 31 points on problem 3 that I had missed, that could have made my silver medal safer for day 2.</p>

<h3 id="yan-xuns-perspective">Yan Xun’s perspective:</h3>
<p>I started by reading all of the problem statements and writing down all the ideas I could think of in 5 minutes. I managed to quickly figure out the idea for the first subtasks for P1 and P2, and implemented them without much trouble. I did not know where to start on P3, and it looked like quite a few observations were needed to even get a single point on it.</p>

<p>I decided to spend some time on P2, as I usually do fairly well on communication problems. I was stuck for a while as I couldn’t think of a way to communicate the array C faster than 1 bit per query. (which would result in \(Q = 31 + 64 + 1\ \text{(for size of M)}\ = 95\), not an ideal score.) I then thought of the idea of using RNG to figure out the positions where \(C[i] = 1\). I generated a random integer between 0 and \(2^{25}-1\) for each position, and sent it using 25 queries. This meant that there would be a \(1/2^{25}\) chance for each position where \(C[i] = 1\) that it would get its assigned sequence of 25 bits right by pure chance (but this chance is really low given the number of test cases). I then tried a few different RNG seeds and managed to make a sequence of 23 bits work. At that time, the 2-hour mark was approaching, so I decided to move on to P1 which seemed much more doable than P3.</p>

<p>I solved subtask 2 of P1 pretty quickly, by observing that the answer is the same for all \(E[j] \ge 2\). By making a few more observations (notably if you sort by W, you’ll only ever need to pair two artifacts that have at most one other artifact between them; and you can split the array into ranges where \(W[i+1] - W[i] \le K\) for all \(i\), answer for that range is simply 0 if the number of elements is even, else you leave out one element with the smallest cost for doing so), I managed to solve each query in \(O(N)\) time, bringing my score to \(67\) points for the \(Q \le 5\) cases.</p>

<p>I immediately started attempting subtask 6, and realised that I just need to count the number of connected components with odd size (draw edges between two artifacts with difference \(\le D\)). I implemented a DSU and sorted the queries to solve everything in \(O(N \log N)\) time. By then, I had figured out that combining my solutions of subtasks 5 and 6 would give me the AC solution, but it was implementation heavy so I went to problem 3 first as there were only about 90 minutes left in the contest, and I still haven’t spent much time doing P3.</p>

<p>I thought of a greedy solution for subtask 1, but failed in implementing it after several attempts. With 45 minutes left in the contest, I decided to implement the AC solution to P1 (using 4 segment trees) and managed to get the AC in 30 minutes. I decided that my strategy would be to try P3 until there were 5 minutes left, then try to grab a few more points on P2 by reducing the number of bits and rerolling the seeds. I had no luck with P3 (turns out my implementation of the greedy algorithm was wrong), but managed to get 3 more points on P2 before running out of time (turns out the first seed I tried during the analysis mode session gave me another 1.7 points).</p>

<p>My final score for the day was 100 - 42.27 - 0. I was quite satisfied with the result as I made the bronze cutoff by 18 points, although I could’ve definitely grabbed some points on P3 if my P1 implementation was faster.</p>

<h3 id="kwong-wengs-perspective">Kwong Weng’s perspective:</h3>
<p>There are 3 problems, nile, messages and tree. I started with tree because I like to solve graph problems. The problem felt quite difficult so I skipped to nile. Soon I manage to find an \(O(N)\) solution per query by looking at separate chunks of weights, which give me 67 points. Not long after I got the full solution which requires multiple segment trees and solving queries in increasing order, which feel quite scary to implement.</p>

<p>I decided to skip to messages first. The 29 pts solution is quite easy, by noticing that we can recover one bit per packet because there are more fixed bits than unfixed bits. In 31 queries I could get all fixed bits and use them to transmit the message. After some time, I managed to find an improvement - we can recover at least 8 bits from at least the left or right half, then use them to recover all fixed bits. This approach pushed my score to 47.63.</p>

<p>Having about 2 hours left, I decided to code up the full solution for Nile, which took up 30-40 minutes. After that I continued trying Messages but with no progress :(</p>

<p>With an hour left, I decide on putting all my remaining time on p3. I got greedy subtask quickly for 10 points. While the greedy solution is useless without the special condition, it does give me insights for subtask 2,3 - each leaf vertex should have coefficient \(L\), which each other vertex acts to make the coefficient sum of its subtree at most R, so their coefficient should be nonpositive. The remaining part is to use smaller weight vertices as much as possible, using a set. Merging sets would take \(O(N^2)\) to solve subtask 2, but this can be easily optimised to \(O(N\log N)\) using small-to-large merging. However, my code got WA on the first try and I didn’t manage to fix my code in time :(</p>

<p>In the end, I got 100 - 47.63 - 10 for nile, message and tree. The problems this year are quite nice just like past few years, with Nile on the easier side, Message being a cool interactive problem with a good partial scoring system, and tree on the difficult side.</p>

<p>This was the highest score I have gotten in a day of IOI so I am fairly happy with my result (except for the 31 pts subtask for tree that I missed at the end). Nevertheless, I hope that I will do better on Day 2 :)</p>

<h3 id="chang-juns-perspective-1">Chang Jun’s perspective:</h3>
<p>When the contest began, I quickly skimmed through the problem statements to gauge their difficulties. After some time, I identified a doable subtask in question 2, which earned me the first 10 points. I then switched to question 1 and started working on a few subtasks, gradually making key observations that helped improve my score. I paused at 67 points for question 1 and shifted my focus to question 3. Using a greedy approach, I managed to solve the first two subtasks, bringing my overall score to over 100 points. Feeling satisfied, I took a brief break to reassess which problem to tackle next.</p>

<p>After the break, I considered trying an RNG solution for question 2, hoping to trick the grader, but unfortunately, it didn’t work. I then returned to question 1 and implemented another subtask, raising my score to 82 points. Though I was close to a full solution, I decided that the remaining 18 points might not be worth the effort, so I shifted back to question 3. The optimal solution for question 3 involved small-to-large merging, but the implementation was highly complex. It took me 1.5 hours to debug, and the issue turned out to be something minor.</p>

<p>With the contest nearing its end, I quickly revisited question 2, tried a few more RNG approaches, but again, they failed. In the final moments, I thought of a deterministic method that could have earned me additional points, but with only five minutes left, I couldn’t implement it in time. My final score was 82-10-41, which placed me just above the bronze cutoff. While I’m content with the performance overall, I have some regrets about not achieving a higher score on question 2, especially since many contestants around my ranking earned at least 20 more points there.</p>

<figure>
<img alt="day-3" src="/assets/img/2024/report/day-3.jpg" width="4000" height="3000" loading="lazy" />

</figure>

<h2 id="day-4-excursion-day-1">Day 4: Excursion Day 1</h2>
<p>For our first excursion, we headed to a beach along the Mediterranean Sea. The weather was hot, with bright sunlight, so we applied sunscreen for protection. While many participants from other countries quickly changed into swimsuits and began enjoying the sea, most of our team had no plans to swim and hadn’t brought swimsuits. There were also other water activities available, like banana boats and jet skis, but they were offered at sky-high prices.</p>

<p>After spending some time playing cards, we decided to explore the area around the beach. During our walk, we came across an artificial waterfall where geese were swimming. We later took a break under a wooden shade, enjoying some ice cream with a uniquely chewy texture. It was a refreshing and relaxing way to end our little adventure before heading back to the beach.</p>

<figure>
<img alt="day-4-beach" src="/assets/img/2024/report/day-4-beach.jpg" width="4032" height="2268" loading="lazy" />

</figure>

<figure>
<img alt="day-4-tour" src="/assets/img/2024/report/day-4-tour.jpg" width="4032" height="2268" loading="lazy" />

</figure>

<h2 id="day-5-contest-day-2">Day 5: Contest Day 2</h2>
<h3 id="isaacs-perspective-1">Isaac’s perspective:</h3>
<p>For day 1, I had gotten a low silver performance. Before the contest, I was nervous that I would not do as well on day 2 as day 1, and end up getting bronze.</p>

<p>I started on problem 2, mosaic, as problem 1 was a string problem, which I did not know any algorithms for. Problem 3, being an interactive problem, looked like I could get some easy points with enough thinking, but problem 2 had some very easy subtasks. I immediately grabbed 22 points from subtasks 1, 2, and 4, using brute force and prefix sums. I proceeded to subtask 6, as its constraints implied each query only took up one cell. A single 1 would force both the cells to the right and below it to be 0, which would in turn force the cell below and right of the 1 to also be a 1. So the 1s would form diagonal lines, as long as they were 2 or 3 cells apart. I could ensure that by working down the grid to the third row and column, as the second row/column would not have two 1s in a row, and the third row/column would not have three 0s in a row. So by then, the 1s would be correctly spaced. A query would then just find which diagonal line the cell lies on. I gained another 22 points.</p>

<p>Knowing the construction, I then went for an AC, which involved quite a bit of implementation of prefix sums, keeping track of how many times each diagonal is counted, but my submission ended up only getting 12 points.</p>

<p>I moved on to problem 3, first attempting subtask 4, using binary search to find the colour of each vertex, yielding 24 points. It was then when I finally found my mistake in P2 (not multiplying a prefix sum) and got AC.</p>

<p>I then got my 3 points from problem 1, not able to solve any subtask of the problem other than that. I worked down the subtasks of problem 3, eventually ending up with 64 points, from every subtask but the last.</p>

<p>There were now 30 minutes left of the contest, and I felt like I couldn’t scrape any more points from any of the problems, so I ended up waiting until the end of the contest, hoping that I would remain at silver when the 30 minutes were up.</p>

<p>My final score for day 2 was 3 - 100 - 64, which was 167 points total for day 2. This put me at 344.61 points total, which was firmly within the silver medal range, at 50th place on the CMS ranking list.</p>

<p>I later found out that I was only 16 points from the gold cutoff, and if I got either 82 points for P6 or 59 points for P3, I would already have gotten gold.</p>

<h3 id="yan-xuns-perspective-1">Yan Xun’s perspective:</h3>
<p>Similar to Day 1, I started by reading all of the problem statements and writing down all the ideas I could think of in 5 minutes.
I couldn’t really think of any observations for P1, P2 had a lot of free points, and P3 looked like a generic interactive problem where spamming binary search in the right places would give an AC or really high score.</p>

<p>I decided to implement the trivial subtasks of all three problems quickly to make sure I understood the problem correctly. I first grabbed the first subtask of P3, then grabbed subtasks 1, 2 and 4 of P2 with 2D prefix sums, then the first subtask of P1.</p>

<p>After grabbing some easy subtasks, I decided to work on P1 as it looked like something that was deceivingly doable, and wanted to get it done and over with. I spent about 40 minutes on the problem and did not make many useful observations, and concluded that it would probably be a problem with a really low average score (turns out almost everyone only got 3 points on it).</p>

<p>I decided to attempt P3 next. After about an hour, I figured out a solution to get half credit for the complete graph subtask, by recursively splitting a range of nodes in half, solving for each of the ranges and merging them. I then quickly realised I could binary search on the colour of a node, so I combined it with my previous merge sort-ish solution but exceeded the query limit. I did a couple optimizations to my merge sort, but I still exceeded the query limit. There were only 2 hours left, so I moved on to P2 to make sure I didn’t miss any really easy points.</p>

<p>I proceeded to quickly grab the two other easy subtasks (3 and 5). I initially misread subtask 6 as \(T_i = T_j, L_i = L_j\) and so on for all \((i, j)\), in other words \(Q = 1\). After brute forcing some cases on paper, I realised a consistent diagonal carrying pattern beyond row 3. For some reason I observed from my brute force case that the diagonal carrying starts at column 2 (in hindsight clearly the diagonal carrying has to be symmetrical). To solve the imaginary \(Q = 1\) subtask, I flattened the third row and second column of the grid into an array, and shifted a sliding window counting the number of \(1\)s in the range. Clearly this gave a WA verdict, and that was when I realised I had misread the subtask. I quickly changed my code in an attempt to solve subtask 6, but that still gave a WA verdict because I only calculated 2 columns instead of 3. After half an hour of debugging, I noticed my silly error, and fixed my code once again, but I still got WA after that. 20 minutes before the end of the contest, I started suspecting that my diagonals observation might have some edge cases which I did not have enough time to figure out, so I quickly went back to P3. I kept track of the already used colours to reduce the search space and finally passed the complete graph subtask. I continued debugging my subtask 6 solution but ended up with about 10 WA solutions at the end of the contest. My final score for day 2 was 3 - 37- 31. I knew this was a really bad score as 78 points on P2 was really easy. I was quite worried I would fall out of the bronze medal range, and indeed, I missed the cutoff by less than 4 points.</p>

<p>It’s quite unfortunate that I missed a medal by such a small margin. I’ll have to improve on my speed implementation skills to prevent this from happening again.</p>

<h3 id="kwong-wengs-perspective-1">Kwong Weng’s perspective:</h3>
<p>Today’s problems are Hieroglyphs, Mosaic and Sphinx. I decide to try the problems in that order, anticipating they have increasing order of difficulty like in Day 1. The problem is fairly short but quite interesting. I got the 3 pts subtasks in \(\le 10\) minutes, but got nowhere 30 minutes in. It has many unrelated subtasks but all of them look impossible.</p>

<p>Realising that it might actually be the most difficult problem of the day, I decide to skip to Mosaic. It is about filling the grid with 0 and 1 using some special rule, then counting the number of 1s in any subgrid. The \(O(n^2)\) solution is immediately apparent, by simply generating the entire grid. Next, I found out that for \(i,j \ge 2\), the value of \((i,j)\) depends on which diagonal it is in (basically the value of \(i-j\)). This observation, along with some prefix sums, would solve this problem completely. The issue though, is with the implementation. There are several edge cases to check - when the subgrid includes the first 2 rows or columns. I debugged my solution for quite some time but it still failed, so I decided to skip to Sphinx first.</p>

<p>Sphinx is an interactive graph problem, I got an \(O(n^2)\) algorithm almost immediately - trying all possible n colours for each vertex. Then I got 50% of the line subtask by checking if neighbouring vertices are of the same colour as well as the whole complete graph problem by binary-searching the answers. Having gotten 47.5 points in roughly 40 minutes, I decided to move back to Mosaic and go for the AC. After hours of debugging, I finally got the AC. (I almost jumped from my seat)</p>

<p>With roughly an hour left, I went back to Hieroglyphs and tried to farm some subtasks, but I couldn’t solve any of them. I end up with 3-100-47.5 for Hieroglyphs, Mosaic, and Sphinx which is slightly lower than yesterday. Feeling that the difficulty is almost the same as yesterday, I feel that I will most likely get bronze. It turns out that Day 2 is much more difficult statistically, so I managed to crawl up to a silver :)</p>

<h3 id="chang-juns-perspective-2">Chang Jun’s perspective:</h3>
<p>On day 2, I approached the contest with the same strategy as day 1, starting by reading through all three problems and their subtasks. I began with the 3-point subtask of question 1, then moved on to question 2, where I earned 37 points using a 2D prefix sum approach. I didn’t have a clear idea for question 3 at first, so I set it aside and focused on the other problems. Question 1 reminded me of the longest common subsequence (LCS) problem, making it seem doable. However, despite realizing that the answer could be either the LCS or \(-1\), I struggled to find an efficient solution after a long time. I had an idea for a subtask where \(N\) and \(M\) were both \(\leq 2000\), but the implementation seemed too lengthy, so I put it on hold and shifted back to question 3, determined to get more points.</p>

<p>For question 3, I managed to complete the first two subtasks using a brute-force method. I believed the rest would require binary search to identify the correct color, and with this approach, I improved my score to 20.5. Still unsure about question 1, I revisited it, hoping for a key observation that would lead to a breakthrough, but I couldn’t make any progress. I then returned to question 2, reviewing the grid, and noticed an interesting diagonal pattern of 1s. After some time, I discovered that these diagonals extend infinitely \(A(i,j) = 1\), then \(A(i+1,j) = 0, A(i,j+1) = 0\), and \(A(i+1,j+1) = 1\). The key was finding the first ‘1’ in each diagonal. I generated a \(50 \times 50\) grid to see any patterns and surprisingly all of the head of the chain started before the first 3 columns or rows, I tested my idea in a checker and it seems correct. Implementing it boosted my score from 37 to 78, a significant leap.</p>

<p>The final subtask for question 2 required some math, which I felt would take too long, so I skipped it and returned to the quadratic solution I had found for question 1. Unfortunately, I ran into numerous bugs and wasn’t able to fully solve the subtask before the contest ended. My final score for day 2 was 101.5. I was nervous about the results since my score was lower than on day 1, but when I met with my team leader afterward, I found out I had earned a bronze medal.</p>

<figure>
<img alt="day-5" src="/assets/img/2024/report/day-5.jpg" width="4608" height="3456" loading="lazy" />

</figure>

<h2 id="day-6-excursion-day-2--closing-ceremony">Day 6: Excursion Day 2 &amp; Closing Ceremony</h2>
<p>We took a three-hour bus ride from Alexandria to Cairo, beginning our day with a visit to the Grand Egyptian Museum. Although it was not fully completed, as many artifacts are still housed in the older Egyptian Museum, it was still an interesting experience. We participated in a hieroglyphic writing workshop, where we learned to write our names in ancient Egyptian script. Afterward, we enjoyed a delicious lunch before heading to the pyramids.</p>

<p>While we didn’t receive the extended tour of the pyramids that we had anticipated, we still had a memorable time. We captured some great photos with fellow participants and the Malaysian team, making the most of our visit. The highlight of the day, however, was the closing ceremony dinner, which was held in front of the Sphinx with the majestic pyramids of Giza in the background—a truly breathtaking setting.</p>

<p>After the medal presentation, we took more photos with contestants from Southeast Asia and among ourselves. The ceremony concluded at midnight, and we made our way back to the dormitory, finally arriving at 3 a.m., exhausted but fulfilled after a day of unforgettable experiences.</p>

<p>Pyramids!!</p>

<figure>
<img alt="day-6-pyramids" src="/assets/img/2024/report/day-6-pyramids.jpg" width="4032" height="2268" loading="lazy" />

</figure>

<figure>
<img alt="day-6-closing" src="/assets/img/2024/report/day-6-closing.jpg" width="4032" height="2268" loading="lazy" />

</figure>

<h2 id="day-7-huawei-booth">Day 7: Huawei booth</h2>
<p>We were all extremely exhausted after the closing ceremony, all of us woke up at 12-1 pm. Other contestants seem to be the same as the venue seems to be more quiet than usual with only a handful of people in the Huawei Booth. After lunch, we spend our afternoon farming freebies and doing some quizzes, before going back to our room to start packing up our stuff.</p>

<h2 id="day-8-departure">Day 8: Departure</h2>
<p>Our bus was scheduled for 8 a.m., so we woke up early to pack our belongings (though one team member, unfortunately, left his AirPods behind in Egypt, likely forever). The ride to the airport took about an hour and a half, during which most of us slept. We arrived at 10 a.m., with 4-5 hours to spare before our flight. To our surprise, the waiting area at the airport was a makeshift tent with inadequate air conditioning under the hot sun. It was certainly a new and memorable experience for us.</p>

<p>After spending some time in the tent, we were finally able to check in and proceed to the boarding gate. Before boarding, most of us picked up some souvenirs. The flight to Doha took about four hours, and upon arrival, we faced an 8-9 hour layover. We decided to find a restaurant with seating, while some of our team members headed to the sleeping area to rest.</p>

<p>By 11 p.m., hunger had set in, so we opted for KFC. Given the high prices at the Qatar airport (around RM 50 for a single meal), we teamed up with the Philippines team to place a bulk order, significantly lowering the cost. We enjoyed 21 pieces of fried chicken while engaging in meaningful conversations with the Philippines team, who shared their national Olympiad problems with us.</p>

<p>Soon after, we boarded our flight back to Kuala Lumpur. After another 8 hours in the air, we were finally able to say, “Home sweet home.”</p>

<figure>
<img alt="day-8" src="/assets/img/2024/report/day-8.jpg" width="4608" height="3456" loading="lazy" />

</figure>

<h2 id="final-thoughts">Final Thoughts</h2>
<h3 id="isaac">Isaac</h3>
<p>This was my best performance so far, and I was proud of it. I still feel like I could have gotten a gold medal this year if I had done slightly better, but I was not expecting to get that close to gold. I think that there could be better organisation for this year’s IOI, as most of the tours suggested on the schedule didn’t actually take place, like the Bibliotheca tour after the opening ceremony, or the tour at the pyramids that was supposed to be two hours long, but ended up just being a photography session by the pyramids instead.</p>

<p>I feel that my bad performance at last year’s IOI, had motivated me to train harder in the weeks leading up to this year’s competition and focus on it more, which ultimately led to my silver medal.</p>

<h3 id="yan-xun">Yan Xun</h3>
<p>This was my first IOI, so I was a little worried I would do really poorly due to nervousness. However, once the contest began, I completely blocked everything out except the monitor in front of me, and the contest time felt like it flew by without me realising. The only exception was the last 10 minutes of the contest on Day 2, where I started to worry that I couldn’t debug my P2 solution in time. I was fairly calm originally as I was confident in my solution and didn’t think implementation would be too difficult. Sadly, my worries came true in the end, but I knew that it was ultimately due to my lack of raw skill, so all I had to do was work harder. Despite missing bronze by such a small margin, I was still happy that I could get an AC on the first day. The problems were really interesting and fun to solve.</p>

<p>Meeting so many people from different countries who share a common interest in competitive programming was an eye-opener. Spending time with the Philippines team and Hong Kong team was really enjoyable. The excursions were poorly planned and there was quite a bit of miscommunication, which caused some parts of the excursions to be skipped or cut short, but they were still memorable and pleasant overall.</p>

<p>This year’s IOI was without a doubt a rewarding and novel experience for me. As I have a maximum of three chances left to participate in IOI, I hope to be able to participate in as many IOIs as possible in the future and improve over the years.</p>

<h3 id="kwong-weng">Kwong Weng</h3>
<p>This was my best performance so far on both days (my score on both days was 150+, higher than my total score for IOI 2023). I felt so happy to have ACed at least one problem on each day when none of them was trivial – Nile requires 4 segment trees and dealing with odd and even positions, while Mosaic requires some observation and double prefix sum. The interactive (Sphinx) and communication (Messages) are quite cool too, especially Messages which partial scoring allows suboptimal solutions obtain substantial amount of points (I was mind-blown when Jerome told me his 70+ points solution).</p>

<p>Some reflections on my contest experience – I was really nervous as I began the contest, but once I started working on the problems and code the solutions, the anxiety just went off secretly, except for the moments when I was submitting the solutions ofc. The CMS system is really cool too – this year the organisers implemented a script to allow participants to submit solutions through terminal and solutions are judged within a minute (even during peak periods it only takes a few minutes).</p>

<p>In terms of IOI preparation, I didn’t really have much time to prepare as I focused more on IMO previously and was busy <del>playing</del> at NUS. I only started to seriously train for the IOI a week before, during the mind setting camp, and I never touched any OI stuff during IOI so that I wouldn’t get burned out (though I still solved many Jane Street puzzles the night before). This strategy kind of worked as I don’t have too much of the anxiety of knowing too little things which I always had before an examination.</p>

<p>In terms of activities, our team is mostly at the Huawei Booth before the contest. I got several pandas after solving some sudoku puzzles.</p>

<figure>
<img alt="final-thoughts-panda" src="/assets/img/2024/report/final-thoughts-panda.jpg" width="3060" height="4080" loading="lazy" />

</figure>

<h3 id="chang-jun">Chang Jun</h3>
<p>This was my first IOI and International Olympiad in general, so I was quite nervous. I caught a viral infection and had a sore throat just a few days before the contest. Thankfully, with the help of medicine, I was able to recover in time for the competition. Overall, I’m quite satisfied with my performance, though I missed a few subtasks that were within my grasp.
Outside of the contest, I had a lot of fun collecting freebies from various sponsor booths. I managed to snag two pandas from Huawei, a shirt (or two) from Jane Street, a hoodie from Wincent, and some pins from JetBrains. While the excursions and visits could have been a bit more engaging, I still enjoyed the activities—especially seeing the pyramids and the Mediterranean Sea in person, which was truly a memorable experience.
In the end, despite the nerves, I thoroughly enjoyed both the contest and the opportunities to explore and interact with other participants. It was a great experience that I will cherish.</p>

<figure>
<img alt="final-thoughts" src="/assets/img/2024/report/final-thoughts.jpg" width="2186" height="3887" loading="lazy" />

</figure>

<p>We also have a picture with the <a href="https://codeforces.com/blog/entry/133606?#comment-1195470">ASEAN team</a>.</p>]]></content><author><name>IOI 2024 Team</name></author><summary type="html"><![CDATA[Introduction The 36th International Olympiad in Informatics (IOI) 2024 was held in Alexandria, Egypt from 1 September to 8 September. The Malaysian team comprised Lim Chang Jun, Khor Yan Xun, Isaac Hew Kai Sheng, and Loh Kwong Weng. The team leader was Amos Tan Li Sheng and the deputy leader was Vee Hua Zhi.]]></summary></entry><entry><title type="html">IOI 2024 Team Announced!</title><link href="https://ioimalaysia.org/news/2024/06/ioi-2024-team-announced/" rel="alternate" type="text/html" title="IOI 2024 Team Announced!" /><published>2024-06-03T00:00:00+00:00</published><updated>2024-06-03T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2024/06/ioi-2024-team-announced</id><content type="html" xml:base="https://ioimalaysia.org/news/2024/06/ioi-2024-team-announced/"><![CDATA[<p>The 36th International Olympiad in Informatics 
<a href="https://ioi2024.eg/">IOI 2024</a>  will be held in Alexandria, Egypt from 1st of Septemebr to 8th of September, 2024.</p>

<p>Here are the members of the Malaysian Team:</p>
<ul>
  <li>Lim Chang Jun</li>
  <li>Khor Yan Xun</li>
  <li>Isaac Hew Kai Sheng</li>
  <li>Loh Kwong Weng</li>
</ul>

<p>We wish the team all the best!</p>]]></content><author><name>MIPS</name></author><summary type="html"><![CDATA[The 36th International Olympiad in Informatics IOI 2024 will be held in Alexandria, Egypt from 1st of Septemebr to 8th of September, 2024.]]></summary></entry><entry><title type="html">MCC 2023 Results Are Out!</title><link href="https://ioimalaysia.org/news/2023/11/mcc-2023-results/" rel="alternate" type="text/html" title="MCC 2023 Results Are Out!" /><published>2023-11-10T00:00:00+00:00</published><updated>2023-11-10T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2023/11/mcc-2023-results</id><content type="html" xml:base="https://ioimalaysia.org/news/2023/11/mcc-2023-results/"><![CDATA[<p>MCC 2023 results are out! Please refer to the <a href="/competition/mcc/2023/">MCC 2023 webpage</a> for the results and contest archive.</p>]]></content><author><name>MIPS</name></author><summary type="html"><![CDATA[MCC 2023 results are out! Please refer to the MCC 2023 webpage for the results and contest archive.]]></summary></entry><entry><title type="html">IOI 2023, Szeged, Hungary</title><link href="https://ioimalaysia.org/news/2023/10/ioi-2023/" rel="alternate" type="text/html" title="IOI 2023, Szeged, Hungary" /><published>2023-10-25T00:00:00+00:00</published><updated>2023-10-25T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2023/10/ioi-2023</id><content type="html" xml:base="https://ioimalaysia.org/news/2023/10/ioi-2023/"><![CDATA[<h2 id="introduction">Introduction</h2>

<p>The <a href="https://ioi2023.hu/">35th International Olympiad in Informatics (IOI) 2023</a> was held in Szeged, Hungary from 28 August to 4 September. The <a href="https://stats.ioinformatics.org/delegations/MYS/2023">Malaysian team</a> comprised Vee Hua Zhi, Isaac Hew Kai Sheng, Loh Kwong Weng, and Neo Yong Li. The Team Leader is Amos Tan Li Sheng and the Deputy Leader is Chew Shao Qian.</p>

<p>It was the third IOI for Hua Zhi, the second IOI for both Isaac and Kwong Weng, and the IOI debut for Yong Li. We all traveled to Szeged, returning to an onsite competition after two years of online and hybrid contests!</p>

<h2 id="day-1-arrivals">Day 1: Arrivals</h2>

<p>We landed at the airport on 27/8 at 10 pm and reached Budapest on 28/8 at 2 pm local time, following a 5-hour layover in Dubai.</p>

<p>We arrived at the hotel at 8 pm, and we met our team guide for Malaysia, Luqman, who is also a Malaysian!</p>

<h3 id="hua-zhis-perspective">Hua Zhi’s Perspective:</h3>

<p>We had to wait for the bus for two hours, but it was worth it. Amos brought me around the airport. We met and took pictures with some world-class athletes at the airport as The World Athletics held in Budapest just ended and the athletes were flying back to their respective countries. Here’s me on a “podium”:</p>

<figure>
<img alt="Hua Zhi on a Podium" src="/assets/img/2023/report/image7.png" width="1352" height="760" loading="lazy" />

</figure>

<h2 id="day-2-practice-contest-opening-ceremony">Day 2: Practice Contest, Opening Ceremony</h2>

<p>The morning started with a practice session right after breakfast at Pick Arena.</p>

<figure>
<img alt="Empty hall" src="/assets/img/2023/report/image11.png" width="1323" height="990" loading="lazy" />

</figure>

<p>The Opening Ceremony took place at a different venue after lunch.</p>

<p>There were several performances and dances. Then, every country was introduced.</p>

<figure>
<img alt="Malaysia!" src="/assets/img/2023/report/image16.png" width="1352" height="760" loading="lazy" />

</figure>

<figure>
<img alt="Group Photo" src="/assets/img/2023/report/image9.png" width="1352" height="760" loading="lazy" />

</figure>

<h2 id="day-3-contest-day-1">Day 3: Contest Day 1</h2>

<p>Day 1 tasks: <a href="https://ioi2023.hu/wp-content/uploads/2023/08/d1-closing-ISC.pdf">closing</a>, <a href="https://ioi2023.hu/wp-content/uploads/2023/08/d1-longesttrip-ISC.pdf">longesttrip</a>, <a href="https://ioi2023.hu/wp-content/uploads/2023/08/d1-soccer-ISC.pdf">soccer</a>.</p>

<h3 id="hua-zhis-perspective-1">Hua Zhi’s Perspective:</h3>

<p>I took my time studying the problem statements, and I did some brute force subtasks to confirm that I understood the problem.</p>

<p>Problem 1 looks possible but implementation-heavy, so I thought for a bit, figured out some subtasks on paper, and left that aside. I didn’t really understand how to approach problem 2 at that moment, so I left that aside too.</p>

<p>I focused on Problem 3. It was surely a dynamic programming problem, but I couldn’t figure out how to form the subproblems. Hence, I focused on getting the 25 points by just figuring out if the set consisting of all empty cells is a regular stadium. It took me about 20 minutes, but I managed to secure it.</p>

<p>I returned to problem 1 implementing my solution, but my idea did not work out. Not wasting any time, I proceeded to problem 2.</p>

<p>Problem 2 was fairly easy once I figured out what the idea was behind it. I fought my way up to 60 points and decided to stop as continuing might be a waste of time since I haven’t had much hope with the other problems.</p>

<p>I eventually settled on solving the subtasks in problems 1 and 3 one by one. Implementing it used a lot of time but it was better than leaving it at 0.</p>

<p>At the final moments, I realized that problem 2 can be further improved using binary search but it was too late.</p>

<p>Overall, I was happy about my performance.</p>

<h3 id="isaacs-perspective">Isaac’s Perspective:</h3>

<p>At the start of the contest, I started on problem 1 as that looked the most doable. Problem 2 was hard to understand, and Problem 3 looked impossible to do.
After 3 hours, I gave up and submitted an 8 point solution just so I would have a nonzero amount of points.
A while later, I started on Problem 2. As I read the statement again, I soon figured out an idea for a 60-point solution. However, my attempts at submitting gained me no points, even after trying to optimise my code from a TLE.</p>

<p>My final score was 8-0-0. Knowing that the usual score for the IOI was around 80 on the first day, I was very disappointed that my score was in the single digits. I could have gotten 60 more points if I had just focused on Problem 2 instead of Problem 1.
I felt that the problems this year were much harder than the usual IOI day. Nelson agreed, saying that it was very hard for him to farm subtasks.</p>

<p>At lunch, Shao Qian said that this day was one of the hardest days in the history of the IOI, with all three problems having an AC rate of less than 3%. I hoped for an easy problem tomorrow so I could get at least a medal.</p>

<h3 id="kwong-wengs-perspective">Kwong Weng’s Perspective:</h3>

<p>I read the first problem. I gradually got some ideas that seemed feasible at first sight. But as I went into the details, things became overwhelmingly complex. There are just too many possibilities that I cannot rule out systematically. This problem ended up as a time sink for me, and I didn’t progress any further after getting 8 marks in the first 30 minutes of the contest.</p>

<p>Getting stuck on P1, I jumped to P2. It was an interactive problem, and my task was to construct the longest path in a graph with the property that among any three vertices, there exists an edge connecting two of them. The first thought I had was: Isn’t this NP-hard? This would mean that the special property guarantees an easy way to find the longest path in a connected component. Maybe it guarantees a Hamiltonian path? My instinct is indeed correct and I managed to grab 60 points on the problem, where I am allowed to have full information on the graph. An optimisation that came into my mind was binary search, which would give me 10 more points, but after several failed attempts I decided to move on to P3.</p>

<p>P3 looks really difficult at first sight, but I can get 25 points for the much easier version. I had roughly 30-60 minutes left after grabbing the 6 easy points, so I put in all my effort to get to 20+ points. Unfortunately, I kept getting WA (more than 10 times I think) and it was the most stressful period of the entire day. In the end, I didn’t manage to solve the subtask. My final score was 8-60-6, slightly above the top 50%. It was well below my goal of getting 100+ points, but at least I have a guaranteed HM and a tiny chance of silver.</p>

<h3 id="yong-lis-perspective">Yong Li’s Perspective:</h3>

<p>After looking at the problem statements, I also thought P1 was the most doable. I tried it and had many errors. I’m pretty sure that I had an idea for P1 but somehow had bugs. Then I moved forward to P3. Then got only 8 points for P3(sub 1). I was quite panicked at this point. Then I looked at P2 and also had an idea for 60 points, which also had errors as well. The contest soon ended and I was actually quite demotivated after the contest. Unlucky day.</p>

<h3 id="post-contest">Post-contest</h3>

<p>After the contest, we played at the Jane Street hub with some other countries. Here’s a game of Quoridor where we accidentally drew a horse/llama (look sideways) with the walls.</p>

<figure>
<img alt="Quoridor" src="/assets/img/2023/report/image8.png" width="1323" height="990" loading="lazy" />

</figure>

<h2 id="day-4-excursion-day-1">Day 4: Excursion Day 1</h2>

<p>We went to the Ópusztaszer Heritage park.</p>

<figure>
<img alt="Group photo in front of a hut. Happy Malaysia Day!" src="/assets/img/2023/report/image4.png" width="1280" height="960" loading="lazy" />

</figure>

<p align="center">Group photo in front of a hut. Happy Malaysia Day!</p>

<figure>
<img alt="Group photo with everyone" src="/assets/img/2023/report/image18.png" width="1319" height="990" loading="lazy" />

</figure>

<p align="center">Group photo with everyone</p>

<p>There were tents around with a lot of activities, such as making this wool ball:</p>

<figure>
<img alt="Wool ball" src="/assets/img/2023/report/image10.png" width="740" height="990" loading="lazy" />

</figure>

<p>There were a lot of things to see:</p>

<figure>
<img alt="Statues" src="/assets/img/2023/report/image19.png" width="1323" height="990" loading="lazy" />

</figure>

<p align="center">Statues</p>

<figure>
<img alt="Windmills" src="/assets/img/2023/report/image6.png" width="557" height="990" loading="lazy" />

</figure>

<p align="center">Our team leaders in front of Windmills</p>

<figure>
<img alt="Some building" src="/assets/img/2023/report/image23.png" width="1323" height="990" loading="lazy" />

</figure>

<p align="center">Some building</p>

<figure>
<img alt="Some ship named Ponty?" src="/assets/img/2023/report/image5.png" width="740" height="990" loading="lazy" />

</figure>

<p align="center">Some ship named Ponty?</p>

<h2 id="day-5-contest-day-2">Day 5: Contest Day 2</h2>

<p>Day 2 tasks: <a href="https://ioi2023.hu/wp-content/uploads/2023/09/d2-beechtree-ISC.pdf">beechtree</a>, <a href="https://ioi2023.hu/wp-content/uploads/2023/09/d2-overtaking-ISC.pdf">overtaking</a>, <a href="https://ioi2023.hu/wp-content/uploads/2023/09/d2-robot-ISC.pdf">robot</a>.</p>

<h3 id="hua-zhis-perspective-2">Hua Zhi’s Perspective:</h3>

<p>Day 2 was more chaotic than I thought.</p>

<p>After reading the problems, it was clear that it was not hard to get 39 points in problem 2. However, I was really attracted by problem 3.</p>

<p>I really like problem 3. I guessed that the author was the same author who created “Prisoners” last year (I was right)! It was not easy (but it definitely was my type of problem, as was the case with Prisoners), and I really enjoyed it while I solved the subtasks.</p>

<p>I had to stop myself after I spent 2 hours on problem 3 without progress on the other problems. I continued with problem 1 (which I had absolutely no idea how to approach). I started by solving the brute force subtask, then it became increasingly clear that I had no idea how to solve this problem.</p>

<p>I turned to problem 2 implementing my solution. I got a 0. After a 10-minute debugging session, I found the bug (it was missing one line) and I got 39 points. I turned back to problem 1 as I know very well that problem 2 isn’t my forte and I really need some points in problem 1.</p>

<p>I suddenly understood how problem 1 worked (thanks, brain) and proceeded to march to 31 points (only 4 people got more than 31 points!). I tried and implemented other ideas but it didn’t work.</p>

<p>I was extremely worried that it would spoil my ranking (due to problems 1 and 2), but luckily I remained in silver.</p>

<h3 id="isaacs-perspective-1">Isaac’s Perspective:</h3>

<p>At the start of the contest, I set out to spend 30 minutes on each problem before choosing which problem to focus on for the remaining time. I found that problem 2 had an easy 39 point solution, and implemented it easily. The other two problems seemed too hard to implement. I focused on Problem 1, trying to submit some code that would score me a high number of points. However, I did not manage to implement the solution.</p>

<p>1 hour before the end of the contest, I attempted to farm subtasks. I quickly submitted a solution to Subtask 1 of Problem 1 for 9 points, and a solution to Subtask 2 for 9 points, only a minute before the end of the contest.
My final score was 14-39-0, a total of 53 points from the second day and 61 points total.</p>

<p>I had not gotten a medal for Malaysia this year. I was let down by the fact that I couldn’t earn any award this year despite me almost getting a silver medal last year. At least I collected more subtasks this year and wasn’t stuck at 0 points.</p>

<h3 id="kwong-wengs-perspective-1">Kwong Weng’s Perspective:</h3>

<p>I slightly changed my strategy compared to Day 1. I went on to read all the problems first before starting to solve them. The reason I don’t do this earlier is to avoid losing focus when solving the problems, because my brain will subconsciously think of the other problems at the same time, which could be quite distracting sometimes. This could be a big issue especially when all 3 problems all have difficult subtasks, it’s more important to focus on only one problem to get a higher score.</p>

<p>After reading the problems, I grabbed the easy 39 points from P2 right away. The full solution for P2 doesn’t seem easy to me so I went on to P3. P3 looks really cool but the implementation appears to be a major hurdle, and it might be a time sink. Therefore I immediately moved on to P1 after solving the easy subtasks. As it turns out, the actual time sink for today was P1. I got some ideas that seem to work in O(N^2), which gives a lot of points, but there turns out to be some loopholes which kept giving me WA. Eventually I spent more than 2-3 hours on P1 and only managed to get 14 points. I got 69 points, slightly lower than day1. I knew that I probably was below the bronze cutoff given how easy it is to get 39 on P2. My guess was indeed right and I was about 10 points away from the bronze cutoff. I felt quite sad, but I guess it’s pretty normal in an olympiad competition like this.</p>

<h3 id="yong-lis-perspective-1">Yong Li’s Perspective:</h3>

<p>Same as the first day, I looked at the statements and decided to start with P1. P1 was hard and I kept on trying but nothing much came out from it. Then I moved to P2. I had implementation errors for P2 after trying an hour or so. Then I tried P3. P3 was interesting but insanely hard as well. I came out of the contest hall feeling super down. I guess I’ll work harder next year in Egypt.</p>

<h3 id="post-contest-1">Post contest</h3>

<figure>
<img alt="A picture after the analysis session, with a full-point problem 3 solution in the background" src="/assets/img/2023/report/image20.png" width="1352" height="760" loading="lazy" />

</figure>

<p align="center">A picture after the analysis session, with a full-point problem 3 solution in the background</p>

<p>Dinner:
We had dinner with some Huawei representatives, and we went around the city!</p>

<figure>
<img alt="Dinner" src="/assets/img/2023/report/image22.png" width="1319" height="990" loading="lazy" />

</figure>

<figure>
<img alt="City walk" src="/assets/img/2023/report/image21.png" width="743" height="990" loading="lazy" />

</figure>

<h2 id="day-6-excursion-day-2">Day 6: Excursion Day 2</h2>

<p>We went to Makó Adventure Park and the Szeged Zoo!</p>

<h3 id="mako-adventure-park">Mako Adventure Park</h3>

<p>There was a lot of stuff (see <a href="https://www.instagram.com/reel/Cwxp16fJjtt/?utm_source=ig_web_copy_link&amp;igshid=MzRlODBiNWFlZA==">link</a>) (Hua Zhi: I think I’m in the video, the one shooting the laser gun)</p>

<h3 id="szeged-zoo">Szeged Zoo</h3>

<p>A lot of animals. Pictures of animals omitted. Here’s a picture of a bread instead.</p>

<figure>
<img alt="Chimney Bread" src="/assets/img/2023/report/image12.png" width="743" height="990" loading="lazy" />

</figure>

<h3 id="cultural-night">Cultural Night</h3>

<p>The cultural night was insane. We sang onstage along with contestants of four other countries.</p>

<figure>
<img alt="Singing" src="/assets/img/2023/report/image17.png" width="743" height="990" loading="lazy" />

</figure>

<h2 id="day-7-closing-ceremony">Day 7: Closing Ceremony</h2>

<h3 id="knowledge-fair">Knowledge Fair</h3>

<p>We learnt about some AI stuff:</p>

<figure>
<img alt="AI Talk" src="/assets/img/2023/report/image3.png" width="1323" height="990" loading="lazy" />

</figure>

<p>We can control cars with our brain:</p>

<figure>
<img alt="Hua Zhi controlling a car with his mind" src="/assets/img/2023/report/image13.png" width="740" height="990" loading="lazy" />

</figure>

<figure>
<img alt="Kwong Weng controlling a car with his mind" src="/assets/img/2023/report/image15.png" width="1759" height="990" loading="lazy" />

</figure>

<h3 id="closing-ceremony">Closing Ceremony</h3>

<p>Hua Zhi got a silver medal!</p>

<figure>
<img alt="Hua Zhi receiving his silver medal" src="/assets/img/2023/report/image24.jpg" width="2048" height="1365" loading="lazy" />

</figure>

<h3 id="post-closing-ceremony">Post-Closing Ceremony</h3>

<p>We went to the lobby giving out the Malaysian snacks we bought, in exchange for a picture!</p>

<figure>
<img alt="Image" src="/assets/img/2023/report/image2.png" width="1319" height="990" loading="lazy" />

</figure>

<p>We went around the city for the final time before we had to leave early the next morning. It was quite a sad night.
Here’s a picture of us with Jean Nguyen, a contestant from Luxembourg which we were very close to:</p>

<figure>
<img alt="Szeged Sign" src="/assets/img/2023/report/image14.png" width="1280" height="960" loading="lazy" />

</figure>

<figure>
<img alt="McDonald's" src="/assets/img/2023/report/image1.png" width="740" height="990" loading="lazy" />

</figure>

<p align="center">We had McDonald’s for supper</p>

<h2 id="final-thoughts">Final Thoughts</h2>

<p>Despite the challenges faced during the contests, the journey, friendships formed, and lessons learned made the entire IOI experience invaluable.</p>

<h3 id="hua-zhi">Hua Zhi</h3>

<p>This was my final IOI. It was enriching and fun as always.</p>

<p>The journey to IOI was, of course, stressful and full of obstacles, but I also met a lot of friends in the process. Sometimes I also wonder if I had made the right decision to join my final IOI as I am already accepted to NUS. However, I pressed through because I knew it would be worth it and I will not regret anything in the end.</p>

<p>The event itself gave us no time to stress about the contest. The food was awesome and we had buffets for every meal. It was all activities and fun in Hungary, with activities and games scheduled all day for us. We made a lot of friends from a lot of countries, including Luxembourg, China, Australia, New Zealand, Singapore, Japan, Turkey, Norway, Belgium, Pakistan, India and others. We were like-minded individuals with a lot in common!</p>

<h3 id="kwong-weng">Kwong Weng</h3>

<p>This year’s IOI was unexpectedly late (September), which makes my schedule really tight as my A-level exam starts in October. This made me question my choice of going for IOI. Would I regret piling up all my studies, trial examinations and university applications in September? As I started my first day in Szeged, I immediately told myself that, no, I won’t regret it. I absolutely loved the buffet meals provided by the hotel – the beef steak, bacon, fish &amp; chips, and many more. The activities hosted by Jane Street Hub are a blast too, from mind-blowing puzzles and intricate board games to VR games and controlling toy cars using our minds. We even sang on the stage during the cultural night!</p>

<p>One notable difference I had compared to my previous trips, was probably that I got more engaged in the event (all thanks to Hua Zhi and our team leaders). As an introvert, I always felt too shy to approach others and speak to them because it got really awkward sometimes, but now as I have joined more and more such events, I feel more comfortable socialising with others (but of course, there is still a large room for improvement).</p>

<h3 id="isaac">Isaac</h3>

<p>Compared to last year, I felt that this IOI was better prepared, with a much wider variety of food than last year. I liked that our rooms were connected to each other, so we effectively shared a single room. Even though my performance was terrible, I enjoyed this year’s IOI much more than last year’s.</p>

<p>I am excited to join future IOIs as well, as I have many more attempts to participate. I hope I can improve my strategy from this year and last year, by farming subtasks to use the time more efficiently.</p>

<h3 id="yong-li">Yong Li</h3>

<p>I love this year’s IOI. There were many activities we could enjoy before and after the contest. The room was connected and the food was delicious. We all received many gifts from the IOI and IOI has also given me the opportunities to meet other people of different countries and cultures. Furthermore, the problem set was very high quality and interesting, it’s unfortunate that I performed badly though.  However, one thing I have to mention is that the transportation this year was terrible. Nevertheless, this year’s IOI is a very good onsite experience for me and I am looking forward to the future IOIs.</p>

<p>I still have one or two more years of participation in IOI. I sincerely hope that this year’s experience will help me in the future and get a higher score. Bonus: I loved the McDonalds meal.</p>]]></content><author><name>IOI 2023 Team</name></author><summary type="html"><![CDATA[Introduction]]></summary></entry><entry><title type="html">IOI 2023 Team Announced!</title><link href="https://ioimalaysia.org/news/2023/06/ioi-2023-team-announced/" rel="alternate" type="text/html" title="IOI 2023 Team Announced!" /><published>2023-06-04T00:00:00+00:00</published><updated>2023-06-04T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2023/06/ioi-2023-team-announced</id><content type="html" xml:base="https://ioimalaysia.org/news/2023/06/ioi-2023-team-announced/"><![CDATA[<p>The 35th International Olympiad in Informatics 
<a href="https://ioi2023.hu/">IOI 2023</a>  will be held in Szeged, Hungary from 28th of August to 4th of September, 2023.</p>

<p>Here are the members of the Malaysian Team:</p>
<ul>
  <li>Isaac Hew Kai Sheng</li>
  <li>Loh Kwong Weng</li>
  <li>Neo Yong Li</li>
  <li>Vee Hua Zhi</li>
</ul>

<p>We wish the team all the best!</p>]]></content><author><name>MIPS</name></author><summary type="html"><![CDATA[The 35th International Olympiad in Informatics IOI 2023 will be held in Szeged, Hungary from 28th of August to 4th of September, 2023.]]></summary></entry><entry><title type="html">IOI 2022 Team Announced!</title><link href="https://ioimalaysia.org/news/2022/08/ioi-2022-team-announced/" rel="alternate" type="text/html" title="IOI 2022 Team Announced!" /><published>2022-08-02T00:00:00+00:00</published><updated>2022-08-02T00:00:00+00:00</updated><id>https://ioimalaysia.org/news/2022/08/ioi-2022-team-announced</id><content type="html" xml:base="https://ioimalaysia.org/news/2022/08/ioi-2022-team-announced/"><![CDATA[<p><a href="https://ioi2022.id/">IOI 2022</a> will be held onsite (finally!) from 7 August - 15 August. 
The host country of IOI 2022 is Indonesia.</p>

<p>Members of the Malaysian Team</p>

<ul>
  <li>Chew Shao Qian</li>
  <li>Heng Hau Ye</li>
  <li>Isaac Hew Kai Sheng</li>
  <li>Vee Hua Zhi</li>
</ul>

<p>We wish the team all the best!</p>]]></content><author><name>MIPS</name></author><summary type="html"><![CDATA[IOI 2022 will be held onsite (finally!) from 7 August - 15 August. The host country of IOI 2022 is Indonesia.]]></summary></entry></feed>