Platform Rules
1. Purpose
HighLoad.Fun is a competitive programming platform focused on code optimization. The goal is to write the most efficient solution for a given problem. This is not a CTF competition - we are here to find ways to speed up code, not to exploit weaknesses in generators or the platform.
2. Fairness
- Own work. Solutions must be your own. You may use publicly available algorithms and libraries, but submitting code written by another person as your own is prohibited.
- No external solution sharing.Do not share your solutions outside the platform (forums, chats, repositories, etc.). Sharing source code through the platform's Source Code Marketplace for RP is allowed - that's a core part of the game.
- Purchased code is for learning. Source code bought via the Marketplace is for studying and learning. Re-submitting purchased code as your own solution is prohibited.
- One account per person.Creating multiple accounts to gain unfair advantages, manipulate leaderboards, or circumvent penalties is prohibited.
3. Leaderboard Integrity
- Scores must reflect real optimization. Your leaderboard position must be earned through genuine code improvements, not by gaming the scoring system or exploiting test data patterns.
- RP must be earned honestly. Do not use coordinated accounts, fake interactions, or any other scheme to artificially inflate reputation points.
4. No Exploitation
- No generator abuse.Do not reverse-engineer, exploit, or abuse test generators to achieve scores that do not reflect genuine code optimization.
- No sandbox escapes. Do not attempt to break out of the sandbox, access unauthorized system resources, or interfere with the judging infrastructure.
- Report vulnerabilities, don't exploit them. If you discover a bug or vulnerability in the platform, report it. Exploiting it for personal gain is a serious violation.
5. Compute Submission Limits
- Source code size. The total size of all source files in a submission must be less than 1 MB (1,048,576 bytes).
- Compiler flags. The compiler flags string must be at most 255 characters.
6. Server Competitions
Some challenges are server competitions: instead of submitting source code, you build a small HTTP service, ship it as a Docker image, and the platform benchmarks it against a generated workload. The rules in sections 1-4 (own work, no exploitation, leaderboard integrity, one account per person) apply here too.
Preparing and submitting a solution
Set a registry password on the challenge page (at least 8 characters), then build, tag, and push your image. Your registry username is your GitHub login. Pushing the image automatically queues a benchmark run - there is no separate submit step.
docker login registry.highload.fun
docker tag <your-image> registry.highload.fun/<challenge>/<your-login>:latest
docker push registry.highload.fun/<challenge>/<your-login>:latestThe challenge page also offers downloadable sample data. Samples are for local development only - each submission is scored on a freshly generated, hidden dataset, so memorizing a fixed request/response sequence does not help. The request distribution is the same every run.
Number of attempts (repository size)
- Each challenge gives you a 2 GiB image repository. Every image you push stores its layers there (shared layers are counted once). When the repository is full, further pushes are rejected - there is no automatic cleanup - so the number of attempts you get is bounded by how much space your images use.
- To get more attempts, keep images small and reuse base layers between pushes. Re-pushing an identical image costs nothing. A live usage bar on the challenge page shows how much of your quota is left.
- One account per person (see rule 2). Creating extra accounts to obtain additional repositories, additional attempts, or to manipulate the leaderboard is prohibited and subject to the penalties in the final section.
How the score is calculated
- Score = test duration + errors x 1 second (measured in nanoseconds). Lower is better. A faster service with no failed requests wins.
- Errors are a penalty, not a disqualifier. A run with failed requests still completes and is scored, but each error adds a full second to your score, pushing you down the leaderboard.
- A run can finish as Success (scored), Error (your service crashed or failed validation - no score), or System Error (a transient infrastructure issue, retried automatically).
- The leaderboard keeps your best (lowest) score per challenge across all your submissions; the earliest submission breaks ties.
Reputation (RP)
Successful runs that improve your result earn Reputation Points - the same RP as compute challenges (levels are in section 7). Server competitions have no language dimension: RP depends only on your score s (in seconds, lower is better). All amounts are rounded to 2 decimals.
- Improvement RP - paid when a run beats your own previous best on this challenge.
- First successful solve:
RP = 50,000 / s(e.g. 1.0 s -> 50,000 RP, 5.0 s -> 10,000 RP). - Later solve:
RP = 50,000 / s - 50,000 / prev, whereprevis your previous best. If the run does not beat your previous best, you earn 0.
- First successful solve:
- Global record bonus - stacks on top of improvement RP, paid only when your score beats every other user's best on this challenge.
bonus = 50,000 / s - 50,000 / global_prev- No bonus for the first-ever solve of the challenge - there is no prior record to beat.
Each request error adds 1 second to s, so errors lower both your leaderboard position and the RP you earn.
7. Levels & Reputation
Your Reputation Points (RP) reflect your skill and contribution. The challenge formulas below are for compute challenges, where RP is tied to two different leaderboards - your best score across all languages for the challenge, and the global best in each specific language. Server competitions earn RP too, with no language dimension - see section 6. All RP amounts are rounded to 2 decimals.
Earning RP from challenges
Let S be the score of your newly accepted solution (lower is better).
- Improvement RP (all-languages scope). Compared against your previous best on this challenge across every language.
- First successful solve:
RP = 10,000,000 / S - Later solve:
RP = 10,000,000 / S - 10,000,000 / prev, whereprevis your previous best in any language. - If
Sis not better thanprev, you earn 0 improvement RP - even if it's your first solve in this language. Example: your all-languages best is C++ at 2000 and you submit Go at 1800. You earn10M/1800 - 10M/2000 ~= 555.56, because Go 1800 beats your all-languages best. Submit Go at 2500 and you earn 0, because it does not beat 2000.
- First successful solve:
- Global record bonus (per-language scope). Stacks on top of improvement RP. Paid only when
Sbeats every other user's best in the same language on this challenge.bonus = 10,000,000 / S - 10,000,000 / prev_lang_best- No bonus if you are the first person to solve the challenge in this language - there is no prior record to beat.
Both mechanisms are awarded on the same submission, so one top-tier solve can pay out improvement RP and a language record bonus.
Earning RP from activity
- Daily login:
+1 RP, once per 24 hours. - Login streak:
+3 RPevery 7 consecutive daily logins. Missing a day resets the streak. - Daily challenge:
+5 RPfor your first solve of the day's featured challenge. - Bug bounty: admin-assigned - see rule 8 below.
Earning RP from likes
RP awarded per like depends on the liker's level. Novice likes are worth nothing, which is why multi-account like-farming does not pay off.
Discussion comments
| Liker level | RP per like |
|---|---|
| Novice | 0 |
| Apprentice | 0.1 |
| Skilled | 0.3 |
| Expert | 1 |
| Master | 2 |
| Grandmaster / Admin | 5 |
Article comments
| Liker level | RP per like |
|---|---|
| Novice | 0 |
| Apprentice | 1 |
| Skilled | 3 |
| Expert | 10 |
| Master | 20 |
| Grandmaster / Admin | 50 |
Levels
Levels are dynamic: each level's threshold is a fraction of the #1 non-admin player's RP, snapped down to the nearest 100 RP. For a level with fraction f: threshold = floor(f * topRP / 100) * 100.
| Level | Fraction of #1's RP |
|---|---|
| Novice | 0% |
| Apprentice | 0.5% |
| Skilled | 2.5% |
| Expert | 12.5% |
| Master | 37.5% |
| Grandmaster | 85% |
- Levels can change. If the #1 player improves and your RP falls below the new threshold, your level drops.
- Current thresholds are shown on the home page.
8. Bug Bounty
We reward users who help improve the platform. If you find a bug - whether in the platform itself or in a challenge task - submit a report. Valid reports earn RP at the administrators' discretion.
- Describe the bug clearly: steps to reproduce, expected vs. actual behavior.
- If the bug is in a specific challenge, mention the challenge name.
- Do not exploit bugs for personal gain. Report first, earn RP honestly.
9. Respect
- Treat all community members with respect in discussions, comments, and code reviews.
- Harassment, hate speech, discrimination, or personal attacks are not tolerated.
- Give constructive feedback. Disagree civilly.
10. Content
- Challenge descriptions, articles, and comments must not contain illegal, offensive, or inappropriate content.
- Do not upload malicious code or content designed to harm other users or the platform.
11. Penalties
Violations will result in escalating consequences at the discretion of the administrators:
| Level | Action | Details |
|---|---|---|
| 1 | Warning | A formal notification of a rule violation. |
| 2 | Score / RP reset | Reputation points and/or scores reset for affected challenges. |
| 3 | Temporary suspension | Account suspended for a defined period (hours, days, or weeks). |
| 4 | Permanent ban | Account permanently suspended with no platform access. |
Administrators may apply any penalty level immediately for serious offenses.