Sometimes I open a Codeforces problem, look at its rating, and think:
"This should be easy."
Then, 30 minutes later, I'm still staring at the screen.
The funny part?
Sometimes the solution is actually simple.
So why couldn't I solve it?
Recently, I've started realizing that there is a big difference between:
Knowing a concept
and
Recognizing when to use it.
For example, I might already know about:
- GCD
- Sorting
- Prefix sums
- Binary search
- Two pointers
But when a problem doesn't explicitly tell me which technique to use, everything suddenly becomes harder.
Reading the Solution Feels Easy
This is something I find interesting.
After failing to solve a problem, I read the editorial and think:
"Oh... that's it?"
The solution suddenly looks obvious.
But if I had never seen the editorial, I might have spent another hour without finding that idea.
Understanding a solution after seeing it and finding that solution independently are two very different things.
Maybe the Problem Isn't Always the Problem
Sometimes I fail because I don't understand the algorithm.
But sometimes the actual reason is much simpler:
- I missed an important detail in the statement.
- I ignored the constraints.
- I overcomplicated the problem.
- I started looking for an advanced technique too early.
- I had the right idea but couldn't implement it correctly.
This is why getting a wrong answer can sometimes teach me more than getting an accepted submission immediately.
The Most Dangerous Thought
For me, one of the most dangerous thoughts is:
"I can't solve this problem, so I probably don't know enough algorithms."
Sometimes that is true.
But sometimes I already know everything required to solve the problem.
I just failed to connect the pieces.
And recognizing those connections is probably one of the most important parts of competitive programming.
What I'm Trying to Improve
Instead of immediately searching for a complicated algorithm, I'm trying to ask myself a few questions:
- What exactly is the problem asking?
- What do the constraints tell me?
- Can I solve a smaller version of the problem?
- Is there something important that remains unchanged?
- Can I find a simple observation before thinking about advanced techniques?
Sometimes these questions lead nowhere.
But sometimes one small observation completely changes the problem.
Still Learning
A problem being easy doesn't necessarily mean it will be easy for me.
Every unsolved problem can reveal something that I need to improve.
Maybe one day, the problems that make me stare at the screen for an hour today will become the ones I solve in five minutes.








bro it's not linkedin
it would still suck if that was Linkedin.