Welcome to my first blog!!
I'll be sharing my journey in the cp world and how I managed to qualify to ICPC 1 year and 3 months (sorry for the clickbait) into my cp career. If you're curious what it took to achieve this, or if you're looking for some motivation or inspiration, this blog is for you :)
A special thank you to ALnQ417 for helping me cook this blog <3
Starting My CP Career: LCPC 2023 Fail
One month before LCPC 2023 (Lebanese Collegiate Programming Contest), my university informed me about the competition. I was a second year student at that time so I quickly formed a team and registered, not knowing anything about the competition at all. I had high hopes, thinking it would be something similar to what I was studying at university and I assumed I'd do well.
Fast forward a month, I solved the easiest 4 problems in the competition and ranked 27th out of the 50 teams that participated, I was infuriated.
Turns out, the contest required knowledge of a lot of algorithms, most of which I was unfamiliar with. There were a few problems on dynamic programming, trees, graphs, and combinatorics. One problem required FFT, but no one managed to solve it. I was completely shocked to realize that I had encountered few, if any, of these topics during my university classes.
One thing I absolutely hate is losing. From that day forward, I didn't stop practicing (as you can see by stalking my heatmap), driven by one goal: redeeming myself and avenging my poor perf.
Practice + Progress
Practicing for me has always been something enjoyable—a hobby more or less. I dedicated several (3 to 8) hours from my day to practice on CF and CSES. While I could write an entire blog about my practice method (and maybe I will!), I don't want that to be the focus of this blog, but here's a brief description:
- CSES: Used to learn new algos/techniques/tricks.
- Codeforces: Used to practice what I learn from CSES + randomized practice.
- Editorials:
- CSES problems: I read editorials after spending 3-24 hours thinking about the problem.
- Codeforces problems: I do not read the editorial before solving the problem, regardless of how little progress I'm making. I do check it when solved to see if I could learn new approaches/coding styles.
Thanks to this practice routine, 9 months into my cp career, I hit CM, ranking first in Lebanon :D. That was my first major achievement, and that gave me a huge confidence boost. If you take a look at my rating graph after I hit CM, you'll notice that I did not lose points in a single contest until I reached M 1.5 months later. In total, it took me 10.5 months to hit M!
LCPC 2024
We had two kickoff contests before the actual LCPC. My team ranked second in the first one, and managed to jump to first in the second. LCPC 2024 was originally scheduled for the 5th of October, but due to the war in the country, it was postponed till 2nd of November and eventually held online on the 9th of November. This was disappointing as I was looking to meeting fellow Lebanese CPers, most notably (sorry if I missed your name):
- HusseinFarhat (nouni orz)
- AliFarhat
- mnasser02
- MarcAS (java user :puke:)
- ALnQ417 (alnq orz)
- abbasslb
- MoeHammoud
- Farhat Fan Club Peeps
The contest (group) consisted of 15 problems, most of which are very easy, with only 2 hard problems—unfortunately, one of them turned out to be the same as a Codeforces problem. My team (Yurry and CodePrinceX) and I, sped through 14 problems in 3 hours but we couldn't get the last one :'(.
We managed to rank second and lost on time to Boomerang from AUB (DonC, J_Nas, and okandil21). However, this result meant that we qualified to ACPC 2024!!
ACPC 2024
Less than a month after LCPC was ACPC. Due to the LCPC being postponed twice, my team and I were late to apply for visas. ACPC was held in egypt, and do not get me started on how annoying it is to get Egyptian visas. From the moment LCPC ended, we were in a race against time, but thankfully, we managed to get our visas just one day before our flight.
I was fortunate enough to meet some of the brightest minds and connect with people I met on Discord (shoutout to Errichto Server Official). A special mention to those I was most excited to meet at ACPC: ismail-but-noob, SirPh and HusseinFarhat <3.
Contest Day + Strategy
I wasn't particularly nervous before the contest; I was more tired than anything. It was hard to get enough sleep given that we didn't reach our rooms until 3a.m. on the first day.
When the contest started, we didn't have the best of starts. Our progress was steady but relatively slow at first. Our contest strategy was to stress test every single problem before submitting regardless of how easy it is. We managed to sweep through 8 problems (7 easy and medium, only 1 hard) with no wrong answers at all. At one point we reached 3rd place, though we fell to 5th before the blind hour.
During the blind hour, I was committed to solving problem C but quickly switched to F noticing it had more submissions. The idea was pretty simple, but I had a LOT of bugs implementing and I couldn't get it in time sadly.
As the contest ended, I felt a mix of nervousness and disappointment. There were a LOT of submissions from teams ranked below us, and I couldn't help but feel a bit sad that I couldn't solve problem F in time.
When the final results were announced, we finished in 9th place, dropping 4 ranks during the blind hour thanks to our contest strat. Despite the slip, we earned a bronze medal—and most importantly, we qualified for the ICPC World Finals!!
Final Notes
I hope this blog inspired and motivated some of you, and made you believe that with discipline and hard work, you can achieve a successful competitive programming career.
If you have any questions please feel free to ask in the comments.
Thank you for reading :)