English version is in beta. All contents of the site should be already translated (mostly using machine translation), and everything should work properly. However, if you find any problems, please contact me.

Rating formulas, etc.

The rankings tables show the rating, activity, rating on codeforces, weighted rating change on codeforces and weighted number of contests on codeforces.

Rating

(Who cares, the specific code for calculating the rating and activity is here.)

The rating is determined simply by a set of solved problems. Namely, each problem costs a certain fixed number of rating points, determined by the level of this problem.

A Level 1A problem costs $2.5$ rating points. A Level 2A problem costs $2.5^2$ rating points. A level 3A problem costs $2.5^3$ rating points, etc. A level $N$A problem costs $2.5^N$ rating points.

The problems of intermediate levels are worth an intermediate number of points. Namely, the problem of level $N$B costs $2.5^{N+0.25}$ rating points, level $N$C — $2.5^{N+0.5}$, level $N$D — $2.5^{N+0.75}$ points.

Problems from regional olympiads are considered as problems from level 3A. If the same problem exists at several levels, then only the highest level of this problem is taken into account.

When displaying the rating in tables, it is rounded to integers, but when calculating everything is considered real numbers.

Cost table (rounded to two decimal places):

          A            B        C         D
 1       2.50       3.14       3.95       4.97
 2       6.25       7.86       9.88
 3      15.62      19.65      24.71      31.07
 4      39.06      49.12      61.76
 5      97.66     122.80     154.41     194.16
 6     244.14     306.99     386.02
 7     610.35     767.48     965.05    1213.49
 8    1525.88    1918.69    2412.63
 9    3814.70    4796.73    6031.57    7584.29
10    9536.74   11991.82   15078.91
11   23841.86   29979.55   37697.29   47401.83
12   59604.64   74948.87   94243.22
13  149011.61  187372.18  235608.05  296261.43

Ideology

The scores for the problem grow very quickly, because at high levels it is not so important what you have solved at lower levels. For example, if you are already at level 5, then most likely, level 1 problems do not pose any difficulty at all for you. Therefore, it does not matter how much you have solved at level 1. And this is due to the fact that level 5 problems cost much more than level 1 problems.

Activity

(The calculation code is at the same link)

Activity is an indicator of how actively you have been solving problems lately. Every problem that you have ever solved gives its contribution to activity. Each problem has "basic" activity score — this is the square root of the level number. (All level 1 problems have a "base" score of 1, each level 2 problem has a base score of 1.4, etc.) This base score is multiplied by $0.55^{t/\tau}$, where $t$ is the time elapsed since you solved this problems, and $\strut\tau$ is equal to 1 week. For example, if you have just solved the problem, then the base score is taken into account in full. If you solved the problem exactly a day ago, then the base score is multiplied by $0.55^{1/7}\approx 0.92$. If you solved the problem exactly two weeks ago, then the base score is multiplied by $0.55^2\approx.3$. If you solved the problem 8 weeks ago, then the base score is multiplied by $0.55^8\approx.0083$, i.e. this problem is almost not taken into account.

The total activity value for all problems is divided by 0.45, resulting in a sort of average number of "problems" per week.

As a result, only recently solved problems are taken into account, and those that you have solved a long time ago are not taken into account. But at the same time, the decline in this "accountability" is smooth. If you stop solving problems, then your activity will gradually decrease over time (although it will never become exactly zero). In the rankings, activity is displayed rounded to one decimal place, but in fact, activity is a real real number.

In some ranking tables, students whose activity is greater than 0.1 are indicated first, and only then all the others.

Colour

The names of students in the tables are drawn in a color determined by their rating and activity. Namely, the activity determines the brightness of the color (from almost black to saturated), and the rating determines the shade (from purple through all the colors of the rainbow to red). For example, a student with a rating of 1 and activity of 10 will have a bright purple color, a student with a rating of 1 and activity of 0.1 will have a dark purple color, a student with a rating of about 100,000 and activity of 10 will have a bright green color, and with activity of 0.1 — dark green color; red color corresponds to a rating of 4500000.

Specific formula: In the HSV model, the participant's color has the following components:

$h = k\cdot \log(r+r_0) + b$
$v = 0.3 + 0.7 \cdot \log(a+1) / \log(A + 1)$
$s = 1$

here $r$ and $a$ are rating and activity, $A=7$, $r_0=200$, and the constants $k$ and $b$ are selected so that the two reference points (rating 600 and rating 4500000) get the correct colors (blue-purple and red).

There are also minor corrections at the edges of possible value intervals. The code is here.

Codeforces parameters

Code

The CF rating is taken directly from CF, updated once a day.

The weighted number of contests is calculated as follows: each contest you write gives a contribution equal to $0.5^{t/\tau}$, where $t$ is the time elapsed since the contest was written, and $\tau$ is equal to 4 weeks. All such contributions are summed up. I.e., a contest just written gives a contribution of 1, a contest written 4 weeks ago — 0.5, etc.

The weighted rating change is calculated as follows: each contest you write gives a contribution equal to $\delta\cdot0.5^{t/\tau}$, where $\delta$ is the rating change in this contest, $t$ is the time elapsed since the contest was written, and $\tau$ is 4 weeks. At the same time, the very first written contest in life is not taken into account, because there a rating change is a meaningless thing.