The onlinejudge.org is one of the oldest online judges (see Grokipeida for the history).
My first submission was 26 years ago (2000-01-14 09:47) and the first 14 years were really formative years for me, using the online judge to develop my critical thinking, algorithm and data structures, as well as coding skills and speed. I've solved 1,521 problems by myself (with hints from the web), but since then I've been struggling to find time to continue this developments.
In the recent advent of LLM (large language models), I'm curious how far can a modern LLM coding agent solve problems from this online judge? so I did an experiment to use Antigravity ($20 subscription) and Claude Code ($100 subscription) and ask it to solve as many problems it can. In summary, Antigravity (Gemini 3.6 Flash) and Claude Code (Opus 5 + Fable 5) together can solve additional 3,354 of my unsolved problems in 3 weeks. FYI, it did write most of the solutions by itself before falling back to the web for hints when stuck.
So, it's true that modern LLM coding agent can solve about 97% competitive programming problems (at least those problems that already circulated in the web) easily and really fast too. I would (approximately) say that with Antigravity + Gemini 3.6 Flash you can use it to solve 90% easiest problems, the next 6% harder problems with Claude Code + Opus 5 and the last 1% hardest problem with Claude Code + Fable 5.
Solving 1 problem every 9 minutes
You may be wondering how did I use the LLM coding agent to solve 3,354 problems in 3 weeks (i.e., 1 problem every 9 minutes)? Did I manually copy paste each problem to the Claude Code every 9 minutes for the entire 3 weeks? Yeah... no. I used skills!
Skills for solving a problem
A skill is just a markdown file containing a tutorial of how-to do a certain task for the LLM coding agent to follow. You just write the skill once and then you can refer to it again and again in a prompt. For example, when submitting a C++ solution to an online judge, you need to first login to the onlinejudge.org, then open the quick-submit page then fill in the forms specifying the problem number, language, and upload the C++ solution. To create a skill, you can just prompt Claude Code to write a skill to do that and save it in a skills folder named "skills/submit-problem". Next time, you can just prompt submit problem 12345 using the skill without having to re-explain the steps. In the same way, you need to create skills to lookup the submission status of the solution to the problem that you've just submitted. You can also create a skill to solve a problem: first download the pdf of the problem, parse the input and output, save it to {number}.in and {number}.out, write C++ solution and save it to {number}.cc and then write down the editorial on how to solve the problem and save it to {number}.md. Yes! you can ask LLM agent to explain the solution too!
Solving the problems in parallel
Once you have the solve, submit, and check submission status skills you can then prompt: "please solve and submit problems numbers A, B, C, ... in parallel using 10 subagents until they got AC." Be careful to issue this prompt, it will drain your LLM quota quickly! only do this when you are sure the skills are well tested first! Also you will learn that doing this is not efficient since your subagents tokens will be wasted if you are out of quota in the 5-hours window. It's better to never run of quota in the 5 hours window so your subagents never need to be restarted.
Which LLM to use?
Now, when you want to run the LLM coding agent for long running tasks over 3 weeks, you want it to continuously running while you are sleeping! From my experience, Gemini 3.6 flash is not good for long running tasks: it stops in about 1 hour and need to be kicked-in-the-butt to "continue the work". There's a workaround to ask it to run cronjob to self-kick every 5 mins, but you'll discover that Gemini will often forgot that it run expensive processes and didn't terminate it before moving on to the next problem, this may crash your working computer! You can add to the prompt for Gemini to proactively cleanup the zombie processes, but it still often forgot after a while!
Claude Code with Opus 5 is far better for the long running tasks! It can run overnight if you tune the token consumption so that you are not to out of quota for the 5-hours windows. Claude Code with Fable 5 is just too slow for solving problems and burning too much tokens, this is better reserved to solve problems that are unsolvable by Opus 5.
Competitive Programming Future
With LLM coding agents that powerful, what will happen to the future of competitive programming? Well, I think it will be even more competitive! The situation is similar to Chess or Go where there exists more powerful engine than human, but the competition between human still going strong. Human can learn even faster with the help of the engine. The engine will become cheaper and better in explaining the solutions (as long as the human still have willingness to learn).
This also means that cheating in online contests is now getting easier than ever! Contest organizers will need to figure out ways to make the competition fair for the players.
Looking at this World Ranklist below, the top ranked user is still human (Josh Bao). FYI, I did use my own user name (felix_halim) to run the experiment, and I've ended my experiment (since Claude Fable 5 also gave up on the remaining unsolved problems saying that they are research problems and too difficult to solve). So at this point, maybe human is still winning :)
![]() |
