I haven't slept for 20 hours and I can't fall asleep. I've been reading others' topics on AI, and I had a sort of epiphany. These ideas have been brewing inside me for many years, and I thought it might be time to share them with the community.
There were times when I was a "competitive programmer" at the core. I spent many years doing that exclusively. I've never been to IOI, but I like to think that I've reached some good heights.
Two years ago, I stopped writing online competitions. I've written a few offline competitions after that, but eventually, I decided to stop that too.
Yet somehow Codeforces still attracts me. I don't want to solve problems, but I keep typing codeforces.com into the address bar. Why? Just yesterday, I didn't have an answer.
Imagine a layperson asking you what competitive programming is. What are you going to say? My answer has always been "Oh, we solve interesting algorithmic problems with time constraints and other limits". Many of you likely do the same.
Yet we keep calling what we do "competitive programming". Why does the explanation lack the word "compete" then?
Barring Codeforces-specific hacks, all participants solve problems independently. It's not like chess, where one competes against someone else. It's asymmetrical. So why did we add PvP? Because it's fun.
But why is it fun to me specifically? I'm in the minority here, but I hate writing rounds. I know my limits, I know what I can and can't achieve with my limited time. Seeing my rating dance around 2200 is no fun and not a good motivation to keep going. Even if I keep improving, what do I get in return? Unless I get to the top-rated list, it's only fake internet points. Hell, the only reason I use this account is because people trust an orange's posts more than cyan's.
I'm not here for contests. I'm here for the community. I'm here for you all, and for you, the one reading my post right now, in particular.
I like reading about interesting tricks. I like to see people inventing new techniques or uncovering bugs. I like watching people reporting UB as if it was a compiler bug, because sometimes it really is a compiler bug, and I get to chuckle for a minute.
To me, interacting with other people is the best human experience of all. I think many agree with this. There are so many comments on round announcements, so many people helping each other understand the editorial, and so many memes. (Do we have a mascot yet?) We've built quite a subculture.
CP isn't "competitive programming", really. It's not about solving problems faster than others. No, it's about making bets with your friends, achieving something to boast about, and making silly jokes only geeks understand.
This is something AI will never be able to take from us. We'll always have each other.
This is the only thing I ever cared about. I found my first friends in the CP world. We solved problems on a napkin. I never held any lectures, yet I always kept thinking about the easiest way to explain a certain technique. I vividly remember the moment I realized a bottom-up segment tree isn't really a tree and spent the next day telling that to everyone who cared to listen.
We never needed to compete against each other. Looking back, were we given a choice, we'd solve problems in teams more often than not.
So, to hell with the rating system, I'll happily read your article on improving FFT performance instead. Scratch the LGM title, I want to watch you speedrunning a round on Twitch. Hold April fool's contests every two months, no AI is going to help you solve those problems.
I think this is the way forward.
CP hasn't always been about complex algorithms or even difficult ideas. Early problems have been quite simple, yet a community was built around them anyway. We are not united by contests, we're united by problem-solving and a love of programming, mathematics, or both.
The Demoscene community is kinda similar to ours. It's about doing something efficiently with a computer, too, just wider, more practical in some ways, and less practical in others. They have "contests" too, called demo parties. The word choice is important: people come to show off, not to win prizes. It's common practice to talk to participants in breaks to ask them how the hell they did something cool.
What I mean to say is, this scheme works. It's new, it's radical, but it works. If the choice is between CP becoming even more fringe and detached from reality and this, I know what choice to make. And I hope I'm not alone.
"Yet somehow Codeforces still attracts me. I don't want to solve problems, but I keep typing codeforces.com into the address bar. Why? Just yesterday, I didn't have an answer."
Same pinch bro
I don't know, is it really CP going forward?
Loving it or not, competitive programming's core is about us competing against each other in contests and see who will be the best. If you fail, you learn from others and try to improve. To scrap the whole idea out of CP would be challenging. Of course some of the mortals says that AI and cheaters are ruining it, but you just can't save competitive programming by ... making it not competitive anymore?
I really like the idea, a map of the future that you proposed. It's a really bright one, and I do look forward into it. But to get the whole community to be used to it, scrap the whole rating system and just focus on solving problems, and the contest list that is halved by April Fools? I don't know which will work better, since for a community that focuses on problem solving only, I do believe there are other options.
My dumb take: Hold your idea as a whole, just add like 1v1 or 3v3 and calculate the rating based on AI, like chess or so? Scrapping traditional contests feels so hard.
About the 1v1 part:
The reason we don't do duels normally is because we need new problems to solve or you could come across a problem you already solved from your alt. But let's assume AI actually reached GM level, can it write problems then? Maybe AI would write the problems and we would duel with those, infinite problems!
Note: AI in it's current state would only write standard problems, but maybe in the future this could change?
A general misconception of AI/LLMs is that it is creative. It is not. Things created by AI is always taken at least from something that existed before, therefore it cannot generate infinitely new, creative problems for us.
At least some problems can have enough differences from any existing problems to be appropriate enough to be called "new".
Please show me a single competitive programming problem you ever solved that could be considered completely "new". How do you think the human mind works to come up with such ideas that is so fundamentally different than AI?
Unlike chess, problem have hard ratings, meaning it does not varies across all users.
AI can detect cheaters in chess because people can't get to the skill of AI, meaning if a move can be impossible for an user to make. However, Competitive Programming problems are for people to solve, so problems HAS to be possible for some human to solve for some time, and has a solution. We can't know for sure if a human or AI solved the problem, because all solutions is correct and logical, and if it is logical some humans will always be able to solve it.
... At least that applies to Codeforces problems, which is intended to be solved by human, not some centuries — old problems that hasn't been solved before.
It's too soon to imply the end. I am an avid user of ChatGPT (not that I use it solve problems during contests). The mini model as of now is not strong enough to even discover basic patterns in problems, let alone think critically. You could think of the model as a friend with a brilliant memory. Someone to have an intellectual conversation with, without expecting too much input, other than getting the basics checked.
I have tested the current thinking models as much as I could, given the prompt limits and my opinion on the strength of the AI model has changed. The model is still good to teach you some basic non critical techniques or theorems very thoroughly.
Don't get devastated, my man. For a number of years there's been a machine that wins nearly anybody in chess, but so what? A lot of people are still playing chess and there are still chess competitions, educational videos on chess etc. And people who play chess well or show their intelligence in any other way are still valued. So CP crowd will hardly disappear just because AI can now solve some problems too. By the way, it's too bad OpenAI doesn't give access to their o1-ioi model, I'm so eager to try it on harder problems, but there's now only o1-mini in free access, which failed on most of those I asked it to solve.
And more, we can try to reach a negative performance/score in each contests XD.
So basically you're trying to say: The real CP is the friends we made along the way.
Damn this is nice
Become a english teacher . Why do cp?
going to be my first comment on codeforces and all im gonna say is thank you for writing this answer.it was such a breath of fresh air amongst all the negativity and panic. Its us the community which enjoys solving problems by ourselves and challenging each other and that is something some stupid machine will never take away from us :) long live cf
It really touched my heart. Thank you!!
<3
I'm 37, I can't remember the last time I approached a problem to solve, probably when having an interview a year ago. but still from time to time I type codeforces.com into the address bar. But I have good memories of my CP days many years ago. Your post has a wonderful feel to it!
We don't participate in CP to find enemies. We are here to find friends. Regardless of whether AI can maintain the competitiveness of CP, even if CP is ultimately destroyed, and even if we go back to the oldest times when CP did not exist and only a few students or workers discussed interesting programs on the computer together, we still came to find friends.
You're right, 'we', not 'me', we are the masters of this community. I can't imagine if everyone just does exercises, increases their ratings, and then rushes towards LGM to compete; But without such a community where everyone can post blogs and private messages, what's the point.
they may take our competitions, but they will never take our FREEDOM