mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3
904 words
4 minutes
acm journey
2026-04-04

Overview#

OrbisLumen
/
acm-quick-exprience
Waiting for api.github.com...
00K
0K
0K
Waiting...

This is a brief record of my first exposure to ACM and ICPC through the “easy course” ACM-ICPC Algorithms and Programming, which I took to earn two credits.

During the course, I learned a lot and met a master named c1ampy.

Thoughts#

Through this experience, I learned what ACM is and got a glimpse of competitive programming.

I was initially ambitious about achieving something in this field. However, considering the time investment required and my own priorities, I decided to give it up.

This is my short journey with ACM.

diary#

3.2#

After talking with an upperclassman named Izumi Sagiri, I decided to take this course to earn the credits.

I learned that everyone must participate in the university contest, and if you qualify for the finals, you can get 20% of your course grade from it (which basically guarantees the credits). So I invited c1ampy to form a team. To my surprise, he agreed.

From then on, I started learning the basics of C++, getting a quick overview of STL, as well as topics like Data Structures, Graph Theory, Dynamic Programming, and some CS mathematics.


3.6#

Learned the basics of C++ (mainly STL).


3.10#

c1ampy brought in another strong teammate, fanjunwen, and our team was officially formed.


3.13#

c1ampy realized that as a beginner, I couldn’t quickly master full implementations. So instead, he focused on explaining common algorithms at a high level.

This way, I could still contribute ideas during the competition.


3.16#

We decided on our team name:
「想不出队名还要去问 LLM 的屑队」


3.27#

We participated in the warm-up contest.

Oops! c1ampy noticed there was an interactive problem and taught me how to approach that type of question.


3.28#

The preliminary contest began!

  • 08<55>c1ampy asked me to start from the beginning of the problem set, while fanjunwen started from the end.
  • 09<00> — I found Problem A too difficult, so I switched to B.
  • 09<20> — I decided to solve B using recursion.
  • 09<31> — Boom! Time Limit Exceeded. I changed my approach and used memoization (DFS + cache).
  • 10<08> — Nice! Accepted. Then I moved on to the problem assigned by c1ampy.
  • 10<20> — I realized I could use binary search for the case of 2n, but didn’t know how to handle 2n+1. I told c1ampy, and he solved it.

After that, I didn’t contribute much. But c1ampy coded a lot and carried us into the finals.

Congratulations! Not only did I get 20% of the course grade, but I also got the chance to visit another UESTC campus and spend a whole day there — basically just having fun. Haha~


4.5 — The Final#

We made it to the finals.

It was, without exaggeration, one of the happiest days in this short ACM journey.

Before everything began, c1ampy told me that a formal ACM/ICPC-style contest usually runs from around 9<00> to 14<00>. That means you get a few intense hours to think with a short window to eat.

So, in preparation for both the contest and the inevitable hunger, I bought some McDonald’s. (And yes, I still firmly believe KFC should just hand over egg tarts to McDonald’s and retire from that competition.)

After picking up our contest T-shirts and checking in, we sat down.

The finals were about to begin.


Timeline#

  • 11<30>c1ampy started setting up the coding environment, completely ignoring the rule:
    “Do not touch the mouse or keyboard before 11<55>.”
    Honestly, how is anyone supposed to get ready in just five minutes?

  • 12<00> — We split our strategy.
    I started from the beginning of the problem set, while fanjunwen attacked from the end.

  • 12<30> — I had an idea for Problem C.
    I shared it with them, and they asked me to double-check its correctness.

  • 12<40> — I became reasonably confident in my approach.
    Not perfectly rigorous—but convincing enough.
    Then fanjunwen casually found an O(1) solution.

  • 12<50> — Problem C: accepted.
    While reviewing submissions, I realized we had also solved Problem I.
    That gave me a burst of confidence, and I moved on.

  • 13<30> — After hitting a wall on several problems, I finally gave in and took a break to eat.
    Survival first.

  • 14<00> — Problem A looked approachable.
    I committed to it.
    One hour later, I gave up… (It was one of the hardest problems in the set.) >_<

  • ~15<00> — Problem F looked easy.
    But we just couldn’t get it accepted.
    Something felt wrong.
    I went through c1ampy’s code line by line—
    and it looked absolutely correct.

  • 16<00> — The scoreboard froze.
    And we still hadn’t solved F.
    At that point, I decided:
    if I couldn’t spot the bug directly, I would simulate inputs manually and compare outputs to hunt down the edge case.

  • 16<30> — It worked.
    Pen-and-paper debugging saved us.
    We finally fixed the issue.

  • 16<55> — I felt like I had done everything I could.
    Meanwhile, c1ampy kept pushing on Problem J…
    but in the end, we had to let it go.

  • 17<00> — Contest over.

  • 17<10> — Editorial session.
    And yes—Problem A was exceedingly brutal.

  • 17<30> — Rank reveal and awards ceremony:

    • 1 problem → Third Prize
    • 3 problems → Second Prize
    • 5 problems → First Prize

record

Aftermath#

It was a final full of pressure, frustration, breakthroughs, and small moments of clarity.

Not perfect.
Not easy.
But deeply satisfying.

And to end the day, we treated ourselves to a bowl of Japanese noodles.

Absolutely worth it.

Share

If this article helped you, please share it with others!

acm journey
https://orbislumen.pages.dev/posts/cs-4/post/
Author
Orbis Lumen
Published at
2026-04-04
License
CC BY-NC-SA 4.0

Some information may be outdated

Table of Contents