Code Arena
Code Arena is a set of timed programming problems you solve in the browser. You write the code, run it, and submit it against a set of test cases — some you can see, some you can't. Solve every case and you earn Zeal and Jolt.
By the end of this page you will know how to pick a problem, how your program receives its input (read this part even if you skip the rest), and how rewards are worked out.
Open it from Evaluate → Code Arena in the sidebar. You need to be signed in.
1. Find a problem
The Code Arena home page lists topics:
| Kind | Examples |
|---|---|
| Topics | General, Development Basics, Interview Preparation, Data Structure, Advanced Data Structures, Algorithms, Competitive Programming, OOP, Scripting, Dynamic Programming, Code Optimization |
| Language tracks | Python, Java, C, C++, PHP — each with its own subtopics |
Open a topic and use the tabs across the top to browse it:
| Tab | Shows |
|---|---|
| Recent | The newest problems in the topic |
| Popular | Problems most people are playing |
| Most Solved / Most Attempted | Ranked by solves or by attempts |
| Generated by Me | Problems you created with Surprise Me |
| Solved Programs | Problems you have already solved |
| My Favorites | Problems you liked |
| Leaderboard | The leaderboard for this topic |
Pick Easy, Normal or Hard to filter by difficulty. Your choice is remembered.
Each problem card shows its Zeal and Jolt reward and how many minutes you get. Click Launch Arena to open it.
Surprise Me
Surprise Me asks the AI to write a brand-new problem for the topic and difficulty you picked. It costs Jolt — the dialog shows the cost, your balance and what you will have left before you click Generate. Surprise Me problems pay 20% more Zeal.
Generation takes a couple of minutes, and you can have one running at a time. If you come back too early you will see "The problem statement is still being generated. Please check back…" — wait and try again.
Sometimes Surprise Me hands you a problem that was generated in advance instead. Once you claim it, nobody else can.
2. Start the timer
Opening a problem shows a summary first: the reward, how many people have solved it, total submissions, difficulty, tags, category and Total Timing in minutes.
Click Start Program. The countdown starts now, and it is kept on the server — closing the tab or reloading does not pause it.
3. The challenge screen

Left panel — tabs:
| Tab | What it is for |
|---|---|
| Problem | The statement, constraints, CLI Argument Explanation with an example, STDOUT Explanation with an example, hints and tags |
| Code AI ✨ | A paid AI assistant for this problem — see Code AI |
| Instructions | Keyboard shortcuts and the reward rules |
| Result | Your last submission result, and Show Reviews for an AI review of your code |
| Report | Report a broken problem |
Right panel: the language picker, your Zeal and Jolt, the countdown with a Renew Timer button, the editor, and the Run, Validate and Submit buttons.
Bottom panel: Test Cases, Terminal and Stats.
More than 40 languages are available. Problems in a language track are locked to that language.
| Shortcut | Does |
|---|---|
Ctrl + S | Save |
Ctrl + Shift + F | Load your saved answer |
Ctrl + E | Run |
Your code is also saved automatically, separately for each language.
4. Input comes from command-line arguments, not the keyboard
Test data is passed to your program as command-line arguments. Nothing is
typed into it. input() in Python, scanf() in C or a Scanner on System.in
in Java will get nothing — and your solution will fail every case even if the
logic is right.
Read the arguments instead:
import sys
numbers = [int(x) for x in sys.argv[1:]]
print(sum(numbers))
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int total = 0;
for (int i = 1; i < argc; i++) total += atoi(argv[i]);
printf("%d\n", total);
return 0;
}
public class Main {
public static void main(String[] args) {
int total = 0;
for (String a : args) total += Integer.parseInt(a);
System.out.println(total);
}
}
Two things to check on every problem:
- CLI Argument Explanation on the Problem tab says what each argument is and in what order. Its example shows a real argument list.
- STDOUT Explanation says exactly what to print. Output is compared as text,
so an extra space, a missing newline or a debugging
printfails the case.
The Terminal tab shows the command your program is run with. For Java it is
java Main, so keep your class named Main.
5. Run, Validate, Submit
| Button | Runs your code against | Counts as a submission? |
|---|---|---|
| Run | Arguments you type into the box above the terminal, or the example next to a test case (Run with arguments) | No |
| Validate | The test cases you can see — the visible ones plus any you have unlocked | No |
| Submit | Every test case, including the hidden ones | Yes |
Use Run and Validate as much as you like while you work. Submit is the one that is judged and the one that affects your reward.
There is a short cool-down between runs. If you click too fast you will be asked to wait a few seconds.

After Submit you see one of All Test Cases Passed, Some Test Cases Passed, Some Failed or All Test Cases Failed, and for each case whether it passed, with memory, execution time and wall time.
Hidden test cases
In the Test Cases tab, hidden cases show a padlock. When you submit, a hidden case tells you only whether it passed — not its arguments or expected output.
To see one, click its padlock and unlock it with Jolt. Each problem allows only a limited number of unlocks, and each costs more than the last. Once unlocked, the case's arguments and expected output appear, and Validate includes it.
6. The time limit and renewing
The countdown is the deadline. When it reaches zero, every action is refused with "Session expired. The allotted time has passed." and the page reloads.
To keep going, click Renew Timer before the countdown runs out. Use the slider to choose how much time to add — the dialog shows the Jolt cost. Harder problems cost more Jolt per minute. If you do not have enough Jolt, the renewal fails.
If the time does run out, you can open the problem again and click Restart Program. That counts as another attempt, which lowers the reward.
7. How rewards work
- All or nothing. You are rewarded only when a submission passes every test case, hidden ones included. There is no partial credit.
- Once per problem per language. Solving the same problem again in the same language pays nothing. Different compiler versions of the same language — several C, C++ or Python versions — count as one language.
- Fewer tries pay more. Full Zeal and Jolt go to a solve on your first attempt with a single submission. More attempts and more submissions reduce the reward. The Instructions tab lists the exact deductions.
- Another language pays a bonus. Solving a problem you have already solved, in a different language, earns an extra 20%.
- Code AI cancels the reward. See below.
When you solve a problem you get a notification, and it may count towards Code Arena achievements.
Use Run and Validate until the visible cases pass, then Submit. Each extra submission lowers what you earn.
Code AI
The Code AI ✨ tab is an AI assistant that can see your code and answer questions about the problem. Unlocking it costs Jolt, and:
The unlock dialog says so before you confirm: "Unlocking CodeAI will not earn you rewards — it's a learning session." The Jolt is spent and cannot be refunded.
Use it when you want to learn from a problem rather than score it.
What costs Jolt
| Action | Notes |
|---|---|
| Surprise Me | Generating a new problem |
| Unlock Hint | Hints unlock one at a time |
| Unlocking a hidden test case | Limited per problem; each costs more than the last |
| Code AI | Also forfeits the problem's reward |
| Renew Timer | Cost depends on difficulty and time added |
Every unlock dialog shows the cost, your balance and what you will have left. See Zeal and Jolt for how you earn Jolt.
Leaderboards
- The Code Arena Leaderboard (Mastery Hall → Code Arena Leaderboard) ranks everyone by Zeal earned in Code Arena, then by problems solved.
- Each topic has its own Leaderboard tab. It rewards harder problems, first-try solves, low memory use and solving in extra languages, and counts hints, unlocked test cases and extra submissions against you.
Reporting a broken problem
Problems are written by AI, and sometimes one is wrong. Open the Report tab, tick every reason that applies, and click Submit:
- Incorrect Questions or Answers
- Missing Test Cases
- Incorrect Logic
- Inefficient Algorithm
- Unrealistic Inputs
- Time Complexity Issues
- Compatibility Issues
You can report a problem once. Reports go to the platform's moderators.
Next
- Spot Quiz — five-question quizzes on any topic.
- Fair play — what is enforced and what is recorded.
- Leaderboards and leagues