The main idea of the following stuff is to balance each multiplayers modes (contest, multi, opti...) in terms of rewards.

## Β Contest (solo, opti and multi)

A contest allows you to win CP based on the following formula : **N^((N-C+1)/N) * 2**. *N* number of players with a score > 0, *C* rank of the player.

BUT only the 3 best scores are kept. So if you have participated in 5 contests and your points are 1000, 500, 800, 600, 200, you totalize 1000+800+600 = 2400 CP * 2 for contests.

This is fairer for newcomers as they can beat the best old players by scoring high in the next contests.

## Β Multiplayer Games

The multiplayer games points are calculated in almost the same way as the contests but with these differences :

- all multiplayer games are taken into account (and not only the 3 best scores)
- a maximum cap of 5000 CP can be earned from a multi (in case there are 10000 players for a multi, you can only gain 5000 for it for if you rank in first place). So if you are first in 4 multi games (whoa!) with more than 5000 players, you gain 5000 *4 = 20k points.
- if the cap is reached, the formula is still distributed across all the players and not only the first 5000. The formula is :
**min(N,5000 )^β((N-βC+β1)/βN)**.

## Β Optimization (code size)

Code size puzzles points are calculated in almost the same way as the multiplayer games but with these differences:

- there is a leaderboard per language and the CP gain is per language - so you can no longer win CP on the mixed leaderboard (but it can always be consulted to look for the best language for the puzzle).
- any given submission gives a maximum of 200CP.
- the formula is :
**200^β((N-βC+β1)/βN)**. - only the 5 best scores for a given puzzle are kept. So, the cap to each puzzle is 1000, by being first in 5 languages.

## Β Optimizations (performance like Mars Lander)

These are calculated like multiplayer games with a cap of 1000 CP and not per language like code size puzzles.

## Β Clash of Code

These are calculated like multiplayer games with a cap of 5000 CP. The formula is : **min(N,5000)^β((N-βC+β1)/βN)**

## Β Status

Guru: top 100 players

Grand Master: top 500

Master: top 2,500

Mentor: top 5,000

Disciple: top 10,000

Craftsman: top 20,000

Rookie: 20,000+