MikeMirzayanov's blog

By MikeMirzayanov, 13 years ago, translation, In English

This is a detailed and formal version of the Codeforces contest rules. If you just want to learn the rules, we recommend that you first read the post Codeforces Contests. The organizers may slightly modify the rules for specific rounds, then this information is contained in the announcement of the round. The following rules should be regarded as default rules.

General information about a round

  1. You need to register to participate in a round. The registration opens six hours before the start of the contest and closes 5 minutes before it, unless the information about the round states otherwise.

  2. The system of conducting contests has two interface languages available: Russian and English. The contestants can switch between these two languages.

  3. A round continues for 2 hours, unless the information about the round states other duration time.

  4. Contestants are given 5 problems to solve, unless the information about the round states another number of problems.

  5. Problem statements are available in two languages: Russian and English

  6. Statements of all problems become available to read at the moment the round starts.

  7. Before the contest begins, all registered contestants are randomly split into rooms. Each room contains about 40 contestants.

Questions

  1. During a contest the contestants can ask questions to the contest jury via the system. The questions may concern mistakes, ambiguous spots and inaccuracies in the statement.

  2. A question must be asked in one of two languages: Russian or English. The question must be clear and written in a correct language. Otherwise, the jury preserves the right not to consider the question and answer 'no comments'.

  3. The contest jury can answer the given question in an arbitrary text form.

  4. The answer No comments means that the question either doesn't the requirements listed in point 2 or the answer to the question is in the statement or in the contest rules.

  5. An answer to a question is only available to the contestant who has asked it apart from the cases when the contest jury decides that the question is important for all contestants. In this case the jury can make the question and the answer to it available to all contestants.

Problem Solution

  1. A problem solution is a program written in one of the following programming languages (different problems can be solved in different programming languages, the list of languages can be widened):

    • С/С++
    • Delphi/Pascal
    • Java
    • С#
    • Python
    • Ruby
    • PHP
    • OCaml
    • Haskell
    • Perl
    • Scala
    • D
    • Go
  2. Requirements to the solutions:

    • The full program should be contained in a single file.
    • If the problem statement doesn't specify the names of input or output, you must read the data from the standard input and write it to the standard output.
    • You are forbidden to work with the Net.
    • You are forbidden to perform input-output operations except for opening, closing, reading and writing files and standard streams given in the problem statements to perform input-output.
    • You are forbidden to run other programs and create processes.
    • You are forbidden to modify files or directories' permissions in the file system.
    • You are forbidden to work with directories other than the current one.
    • You are forbidden to work with the operating system registry.
    • You are forbidden to create and use GUI elements (windows, dialogs etc.)
    • You are forbidden to work with external devices.
    • You are forbidden to perform any other actions that can in any manner destabilize the judging process.
  3. After a contestant solves a problem, he submits the solution via the contest system interface and continues working on other problems. After the system receives and judges a solution, it immediately responses by displaying the result of judging the solution.

  4. A contestant can see the results of judging of his solutions on the corresponding tab of the contest system. During a contest a contestant can see the results of only his solutions' judging.

Compiling solutions

  1. As a contestant submits a solution, he chooses a compiler that the judging system should use as it compiles the program. The judging system uses the following compilers for judging (the jury has the right to add other compilers at its discretion or replace the compiler's versions with the newer ones):

    • MinGW GNU C++ 4
    • MinGW GNU C 4
    • MS VS C++ 2010
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2
    • Java 6, 7
    • Ruby 1
    • Python 2
    • PHP 5
    • Haskell GHC 6
    • Objective Caml 3
    • Scala 2
    • Perl 5
    • MS C# .NET 4
  2. The contest organizers are not responsible for problems caused by the compiler's version in the judging system not matching the compiler's version used by the contestant as he was writing the program. To partially avoid such problems, there is an option to run a contestant's code on the server's side. To run the code, the contestant should submit the program and the input to the server. After a while the judging system will display the result of the program's execution and the output.

  3. Solutions are compiled and run under Windows OS. Line breaks are set by a couple of symbols #13#10. A file's or an input's last line should end with a line break (right before the end of the file).

  4. If a compilation error occurs, than the contestant gets the judging result as 'Compilation error' and the compilation log.

  5. The size of the file with the source code shouldn't exceed 64 kilobytes.

  6. The judging system uses command line compilers to compile solutions. The compiler command lines for different compilers are given in the table:

Compiler compilation (execution) command line
GNU C++ 4 g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -o %name%.exe %1
GNU C 4 gcc.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -fno-asm -lm -s -Wl,--stack=268435456 -O2 -o %name%.exe %1
GNU C++ 4 (C++0x) g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -std=c++0x -D__USE_MINGW_ANSI_STDIO=0 -o %name%.exe %1
MS VS C++ 2010 cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE %1
Free Pascal 2 fpc -n -O2 -Xs -Sgic -viwn -dONLINE_JUDGE -Cs67107839 -Mdelphi -XS %1 -o%name%.exe
Delphi 7 dcc32 -Q -$M1048576,67107839 -DONLINE_JUDGE -cc %1
C# Mono 2 dmcs -define:ONLINE_JUDGE -o+ -out:%name% %1
Java 6,7 javac -cp ".;*" %1, java.exe -Djava.security.manager -Djava.security.policy=java.policy -javaagent:invokeagent.jar -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s
Ruby 1 ruby.exe -c %1
Python 2 python -c "compile(open('%1').read(), '%1', 'exec')"
PHP 5 php.exe -l %1
Haskell GHC 6 ghc --make -O -o %name% %1
OCaml 3 ocamlopt nums.cmxa str.cmxa -pp camlp4o -unsafe -o %name%.exe-ocaml %1
Scala 2 См. Java
Perl perl.exe %s
D dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O %s
Go go build %1

Judging Solutions

  1. During the contest the solutions are judged on a small number of tests called pretests.

  2. The result of judging the solution on the pretests are displayed to the contestant right after the judging.

  3. Each test is represented by the input for the contestant's program. The limits for the input contained in the test are indicated in the problem statement.

  4. All problems indicate the maximum time a program can take to work on one test and the maximum memory that can be consumed.

  5. Judging is performed by consecutively running the program on each test.

  6. The test is considered passed if running the program terminated with the return code 0, the process fit into the given time and memory limits and besides, the program printed the correct answer to the given test. The table below gives the most frequent verdicts of possible errors.

Judgement Verdict Description
Memory limit exceeded The program tries to consume more memory than is indicated in the problem statement
Time limit exceeded The program hadn't terminated in time indicated in the problem statement
Runtime error The program terminated with a non-zero return code (possible reasons: array out of bound error, division by zero, stack overflow, incorrect pointers usage, etc)
Wrong answer Wrong answer
Idleness limit exceeded The program didn't use the CPU time for considerable time
Denial of judgement The solution was impossible to run, perhaps, due to a judging error. The most probable cause is an error in the program (for example, using extra large arrays)
  1. If the solution passed all pretests, the contestant is displayed the result that says Pretests passed. Otherwise, the contestant is displayed the judging result as the number of the first pretest that failed the judging and the judging system verdict.

  2. If the result of the judging is Compilation Error, Denial of judgement (or similar) or if the solution didn't pass the first pretest, then this solution won't be considered in calculating results.

  3. The solution of one problem can be submitted multiple times.

  4. The solution that passes all pretests is considered the contestant's verified solution for this problem.

  5. If a contestant submits several times a problem's solution that passes all pretests, then the last solution is considered as the contestant's verified solution for this problem. All other solutions will be considered as unsuccessful attempts.

  6. If a contestant's solution passes all pretests, the problem is considered pre-solved by the contestant and the system calculates the contestant's preliminary points for the given problem. The points are calculated by the following scheme:

    • each minute decreases the problem's value: the value decreases by X/250 points per minute (where X is a problem's initial value), for example, a problem with the initial value of 500 points gets 2 points cheaper every minute;
    • the number of points a contestant gets for a problem equals the current value of the problem in points minus penalty;
    • the penalty is determined as the number of this contestant's previous solutions for this problem, multiplied by 50 points;
    • a contestant can't earn less points than 30% of the initial problem value.

Hacks

  1. A contestant can lock any of his pre-solved problems. That means that the contestant loses the right to submit solutions for this problem.

  2. After the contestant locks a problem, he gets the right to view the original codes of submitted solutions of other contestants for this problem that share the same room with him. Having viewed another person's code, the contestant can suggest a test on which, as he thinks, the given solution will fail. This procedure will be further called a solution's hack. A test can be given manually or using a generator program that writes the test to the standard output. The system automatically validates the test to satisfy problem statement constraints. If it doesn't, the contestant is notified about it and the hack attempt is ignored. If the test satisfies the indicated constraints, then the solution runs on the offered test. If the solution doesn't pass the test, then the hack is considered successful, otherwise it is considered unsuccessful. A hack attempt is also ignored if by the given moment the hacked solution is not the contestants' last verified solution of the problem. For example, this might be the case if somebody already hacked the given solution before or the hacked contestant has resubmitted the solution.

  3. A contestant gets 100 points for a successful hack and a penalty of 50 points for an unsuccessful hack.

  4. If a contestant's solution is successfully hacked, then happens the following:

    • he problem isn't considered pre-solved by this contestant anymore
    • his preliminary points for this problem are reset to 0
    • the test from the hack is added to this problems' pretest set for the given contestant
  5. If a contestant locked a problem, but had the solution hacked, then he preserves the right to hack other people's solutions for this problem.

Can-do's and Can't-do's

  1. During the round the contestants are allowed to use any books and personal notes as well as a code written beforehand by you personally.

  2. It is forbidden to use somebody else's code in the solution. You may use third-party prewritten code with some restrictions, read carefully about it.

  3. It is allowed to use any sources of information on the Internet (but it is forbidden to copy-paste somebody else's code).

  4. It is forbidden to obfuscate the solution code as well as create obstacles for its reading and understanding. That is, it is forbidden to use any special techniques aimed at making the code difficult to read and understand the principle of its work.

  5. The contestants are forbidden to talk about subjects, related to the problems, with anybody, including other contestants. It is only allowed to ask questions to the jury via the system (see the 'Questions' section).

  6. The organizers of the contests have the right to monitor the contestants' honesty in behavior using different methods and disqualify the contestant if violations are found.

  7. All programs submitted by the contestants for judging, should be aimed at solving the problem and not at violating rules or destabilizing the judging system. A contestant who deliberately attempts to destabilize the judging system, will be disqualified.

  8. Attempting to digitally extract other contestant's code during the hacking is considered cheating. You may not use any technical/digital tools to obtain other contestant's code, including (but not limited) OCR, traffic capture, browsers plugins and so on. The only allowed method to analyze other contestant's solution is reading it in a hacking window. However it is allowed to manually retype the solution or it's parts to run it locally.

  9. Any violation of these rules, rules from the FAQ section, rules from the contest announcement or rules that were accepted during the registration will lead to penalty provisions, including disqualification.

Standings

  1. During the contest the current results' table is available to the contestants. The table shows the current place of each contestant. The table also contains the information about the hacks and the history of submissions of each contestant.

  2. All intermediate results are unofficial.

System Testing and Final Standings

  1. After a contest is over, the results of the contestants' solutions' judging on the main set of tests are published.

  2. The main test set is used to judge verified solutions, i.e., the solutions that meet all these criteria:

    • passed all pretests;
    • are the last submitted solutions of each contestant for each problem;
    • haven't been hacked.
  3. A problem is considered solved by the contestant if the contestant's solution passed all tests from the main set of tests.

  4. A solved problem brings to the contestant the score, equal to the pre-score of his solution for this problem.

  5. A contestant's result is the sum of points for all problems he has solved plus points for hacks.

  6. In the final results' table the contestants are listed in the order or the results' decreasing. If two or more contestants have the same result, they share the same place.

  7. The judging is performed on computers Core 2 Duo E6750, 2.66 Ghz, 3Gb of memory.

Intellectual property

  1. The rules below are used each time if for a particular round there are no separate rules. Competitors retain ownership of all intellectual and industrial property rights (including moral rights) in and to Submissions.

  2. As a condition of submission, Competitor grants Codeforces, its subsidiaries, agents and partner companies, a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to use, reproduce, adapt, modify, publish, distribute, publicly perform, create a derivative work from, and publicly display the Submission.

  3. Contestants provide submissions on an "as is" basis, without warranties or conditions of any kind, either express or implied, including, without limitation, any warranties or conditions of title, non-infringement, merchantability, or fitness for a particular purpose.

Full text and comments »

  • Vote: I like it
  • +17
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

In Gym the contest "2011-2012 Petrozavodsk Winter Training Camp, Saratov SU Contest" has been published. It was prepared by Saratov Stata U for Petrozavodsk Winter Training Camp (2011-2012). At the same time it was used as a round of Karelia Cup and Open Cup.

The contest is for participants of ACM-ICPC World Finals (or similar) level .

And I never tire of calling other authors to publish their contests in Gym!

Full text and comments »

  • Vote: I like it
  • +4
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Hi everybody!

Let me remind you that on the 9th of March, at 08:00 the second qualification round of the VK Cup 2012 championship will start.

It is the last chance to advance to the Round 1. Contestants who gain a score equal to the 800-th place finisher score or greater will advance to the Round 1.

You will find a few simple problems, roughly ordered by the increasing complexity. During the qualification rounds the problems are judged only on pretests and system testing will take place after the end of the qualification round (round continues for 24 hours). The pretests do not cover all possible cases of input data, test your programs carefully! The qualification rounds have no hacks or decreasing values of the problems.

The round will last for 24 hours, but it does not mean that we encourage you to spend all this time solving of problems. We hope that most participants will cope with the problems (or with most problems) in a shorter period of time. This duration of the round is chosen so that each participant could find a convenient time to participate.

Before the end of the round it is strictly forbidden to publish the problem statements/solutions/any thoughts and ideas about them elsewhere. It is forbidden to talk about the problems, discuss the statements and so on. Be honest and let the best men make it into Round 1. When the Qualification Round is over, you can discuss the problems and solutions.

You can register for the round at any time up to its end. The results of the round will not affect the rating, non-competitive participation in the round is not allowed. However, all tasks will go to the archive after the end of the round.

Best of luck and enjoy solving the problems!

UPD: System testing completed, score to advance to Round 1 is 3500 3450. Congratulations to all advancers!

UPD 2: We've removed cheaters and score to advance decreased to 3450!

Full text and comments »

  • Vote: I like it
  • +59
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Now we have Java 7 in the list of supported languages. It seems it is temporary — Java 6 and Java 7 are here in the same time. As since we will be sure that Java 7 supported correctly and it works fine, we will say "Good bye" to Java 6. We are using Oracle JDK/JRE, current version 1.7.0_3.

Full text and comments »

  • Vote: I like it
  • +89
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Hi everybody!

Let me remind you that on the 3rd of March, at 20:00 the first qualification round of the VK Cup 2012 championship will start.

You need to participate in at least one qualification round to make it to Round 1. Contestants who gain a score equal to the 800-th place finisher score or greater will advance to the Round 1. If you won't participate in the Qualification Round 1 or if you failed to advance to Round 1 by its results, than that's not a problem — you can have a try at the Qualification Round 2 on March, 9.

At each qualification round you will find a few simple problems, roughly ordered by the increasing complexity. During the qualification rounds the problems are judged only on pretests and system testing will take place after the end of the qualification round (round continues for 24 hours). The pretests do not cover all possible cases of input data, test your programs carefully! The qualification rounds have no hacks or decreasing values of the problems.

The round will last for 24 hours, but it does not mean that we encourage you to spend all this time solving of problems. We hope that most participants will cope with the problems (or with most problems) in a shorter period of time. This duration of the round is chosen so that each participant could find a convenient time to participate.

Before the end of the round it is strictly forbidden to publish the problem statements/solutions/any thoughts and ideas about them elsewhere. It is forbidden to talk about the problems, discuss the statements and so on. Be honest and let the best men make it into Round 1. When the Qualification Round is over, you can discuss the problems and solutions.

You can register for the round at any time up to its end. Yes, we had a false start with registration of the qualification. We haven't switched on the Championship participant registration check function. If someone managed to register to the round on the 2nd of March, please do it again.

The results of the round will not affect the rating, non-competitive participation in the round is not allowed. However, all tasks will go to the archive after the end of the round.

Best of luck and enjoy solving the problems!

UPD: The round is over. 12907 submissions to be judged on system tests!

UPD 2: System testing completed, the final results are available.

Full text and comments »

  • Vote: I like it
  • +82
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Overview

The VK Cup Championship is an open computer programming competition that is held by VK, Codeforces and Saratov State University. VK is the largest European social network with more than a 100 million active users. The Championship Final Round will be held in July in St. Petersburg. Top 50 contestants of the Round 3 will be invited to the Finals, with trip expenses covered by the organizing committee.

Eligibility

You are young and you like to solve programming problems? Then this championship is for you! Anyone meeting the following criteria is eligible to compete in the VK Cup:

  • must be at least 14 years and at most 23 complete years of age (by the moment of registration);
  • current employees of VK and/or members of organizing committee/jury are ineligible to participate in the VK Cup;
  • must be eligible for participation in Codeforces contests.

Thus, the intended audience of the championship are mainly high school and university students. To participate in the championship, you have to register beforehand.

Only individuals are allowed to take part in the Championship. No teams, no joint discussions and etc.

Full text and comments »

  • Vote: I like it
  • +436
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Showing an example:)

I've added 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest into the Codeforces::Gym. The contest was held by Saratov State University on Petrozavodsk Winter Camp year ago. This contest was also used as a stage of the Karelia Cup and the Open Cup.

Note

The contest has a complexity of 5 stars and it is recommended to teams are not below the level of ACM-ICPC World Finals.

The problem authors — the jury of ACM-ICPC Saratov Subregional Contest:

  • Mike Mirzayanov
  • Dmitry Matov
  • Natalia Bondarenko
  • Dmitry Klenov
  • Dmitry Stepanenko
  • Stanislav Pak
  • Roman Alekseenkov

Incidentally, it takes about 15 minutes to add the contest, the process was simple and transparent :)

Full text and comments »

  • Vote: I like it
  • +49
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Since almost every member of the community Codeforces know how to write programs, we decided to abandon the wysiwyg HTML editor, and introduce a geek method. Of course, technical texts will gain much more convenient, and text will look uniform.

Now we use modified Markdown as a markup language for blog posts and comments. Since we use an additional extensions, we called markup simply Codeforces Markup. Codeforces custom tags are available in the editor, I will publish a description of the rest here a little later. In a few words it looks like simplified previous version — double square brackets are replaced by single square bracket.

In addition, we improved typography posts and comments.

See description Markdown using the links:

Here's a short list of features:

  1. insert user handle (use ~tourist);
  2. italic and bold;
  3. inline code — return a == 0 ? b : gcd(b % a, a); (place it between `);
  4. numerated, unnumerated and nested lists;
  5. headers;
  6. autocorrection hyphens with dashes;
  7. smart URL detection (makes them to be links) http://codeforces.me/;
  8. tables and images;
  9. source code highlighting;
  10. "smart" quotes;
  11. separate paragraphs with a blank lines;
  12. special Codeforces tags;
  13. insert photos like [photoalbum:PicasaPublicAlbumURL];
  14. and much more!

I recall that on Codeforces implement preview, so you do not need crazy experiments on the Markdown in comments:)

MikeMirzayanov

Full text and comments »

  • Vote: I like it
  • +97
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

On January, 27 we summed up the results and rewarded the laureates. They are:


tourist
The Best Codeforces Participant 2011

Ripatti
The Best Codeforces Problemsetter 2011

Alex_KPR
The Best Codeforces Blogger 2011
  • The Best Codeforces Participant 2011: Gennady tourist Korotkyevich. We've recounted the rating taking only the 2011 rounds into consideration. Gennady topped the table well ahead of everybody else! You can follow the link to track his success on Codeforces contests.
  • The Best Codeforces Problem Writer 2011: Artem Ripatti Ripatti. In 2011, Artem prepared about 10 rounds on Codeforces and proved to be an author of interesting problems as well as a responsible partner. We are grateful to Artem for the help to the project and we hope for further collaboration.
  • The Best Codeforces Blogger 2011: Alexander Alex_KPR Kouprin. Alexander's blog (mostly in Russian) frequently delighted readers with interesting posts. His reports on the Russian Code Cup, the ACM-ICPC finals, Petrozavodsk training camp aroused interest not only in regular readers but also attracted some new ones. Thank you!

The Codeforces project thanks all participants and post authors for the interest towards the project. But we want to say our special thanks to all problem authors!

MikeMirzayanov

Great news! I've received congratulations to the winners from Thomas Cormen (thank you!). Here is the full text:

Mike,

My apologies for the delay in responding. It has been an exceptionally busy term for me, teaching our new introductory course in Python (I'm learning the language along with my students), supervising our senior capstone project course, and chairing our department. You may post the following statement on your website:

Congratulations to Gennady "tourist" Korotkyevich (Best Codeforces Participant 2011), Artem Ripatti (Best Codeforces Problem Writer 2011), and Alexander "Alex_KPR" Kouprin (Best Codeforces Blogger 2011). Although Mike Mirzayanov hinted that we might be in for a change this year, I was not too surprised to see that "tourist" took the top participant spot once again. I applaud the winners and everyone else who takes part in Codeforces.

Tom Cormen
Professor and Chair
Dartmouth College Department of Computer Science
http://www.cs.dartmouth.edu/~thc/
Twitter: @thcormen

Full text and comments »

  • Vote: I like it
  • +112
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Not so long ago in the English Wikipedia has been added to the article about Petr Mitrichev (Petr). Currently, there is a discussion of this article for removal due to the lack of significance. Here is a quote from the discussion: "I don't see how Petr is notable in Wikipedia standards. What makes him different from the hundreds or maybe even thousands of others who are on a similar level as him at competitive programming?".

By the way, there is the article about Reid Barton, the outstanding contestant from US. Who is more valuable for the history?

It would be nice if those who is familiar with the rules of Wikipedia, added to the discussion to support Petr.

By the way, the article actually seems incomplete and not disclosing the success of Peter. Maybe someone will undertake to improve?

Comments?

Full text and comments »

  • Vote: I like it
  • +192
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Today we open a new project Codeforces::Gym, it will be started on January 19, 08:00AM. 30 minutes later, оn Thursday, January, 19, 2012 08:30 (UTC) the testing training contest will be started. The duration of the training is 3 hours. We invite you to join us! As all the trainings in Codeforces::Gym it will be held according ACM-ICPC rules.

As it will be a training, we will use problems from some programming contest (thank you, authors!). Please do not take part in the training, if you've seen these problems. Do not spoil training to other members. Thank you for your understanding.

Please use the official project tracker to report about bugs and feature requests.

Full text and comments »

  • Vote: I like it
  • +22
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

We've made it! Or in any case, we are at least very close to it.

On January 19, 2012 at 12:00 we open a sub-project called "Gym". In short, its goal is to enable the Codeforces coders not only to participate in competitions and discuss them, but also to train and coach easily.

In fact, despite the wide diversity of online judges in the world, a well thought-out training service system does not exist. So, the expectations from this system are:

  1. Collection of online contests, composed mainly of the past official contests.
  2. Opportunity to integrate the final standings of past contests in the online contests to be able to train "against" the official participants.
  3. Opportunity to participate in the training at any time whatsoever, without fear that something breaks down and the server will fall. In short, reliability.
  4. Opportunity to write virtual contests and to solve the problems in a practice mode.
  5. Opportunity to participate both individually and as part of a team.
  6. Opportunity to keep the team while changing the team members.
  7. Opportunity to view various statistics and participation history, the possibility to compile and publish reports on selected participants/contest.
  8. Opportunity for a coach to add an online contest by him/herself, if this contest still does not exist. The process should be simple, reliable and maximally automated. The opportunity to parse the final standings of the past contests. The opportunity to add the attempts of the official participants to an online contest.
  9. Opportunity to view tests or other players' solutions for those who have solved the problem.
  10. Opportunity to find the training to one's taste, i.e. selecting by parameters.

The Codeforces Project:: The training aims to meet all these requirements. Already, nearly everything of the above list is available and whatever is not, will be available.

Full text and comments »

  • Vote: I like it
  • +419
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Hi everybody.

This change will not probably be among the most popular ones but nevertheless, vote counting rules and voting rules in general are going to change. Why? There are several reasons. The main is that we decided to give up the +2/-1 strategy that used to favor authors. This balance worked fine in the Coderofces's initial stage of development. However, it now leads to overrating many uninformative posts. Moreover, such rating is not valid. Thus, a positive vote and a negative vote now have the same value and the total rating sign now represents the actual attitude of the community members to the post or a comment.

Also, as Codeforces is a professional community of those who is interested in sports programming, it was decided to consider the participants' professional achievements. Thus, the value of a participant's vote now is delapnds on the participant's authority and the authority is determined by the rating. At this point I have to mention that the participant's authority is not influenced by his/her contribution. The votes' values do not differ dramatically: despite the fact that the red participants are 15+ times less that the blue ones, their votes' values differ less than their numbers.

We've introduced additional fraud detection heuristics (some of them had been used on Codeforces). These new strategies make it impossible to cheat in various ways or carry out a grudge, they make reverse engineering systems more complicated and influence some other stuff now and then. The exact details of the vote counting rules are not disclosed but the main principles are given above.

Of course, the change in vote counting will trigger considerable changes in some participants' contributions. I guess that's the indicator of the character of the votes' distribution and the voters' authority. All votes will be recounted that will lead to change in contribution.

MikeMirzayanov

Full text and comments »

  • Vote: I like it
  • +74
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Hello

We've scheduled Codeforces Testing Round #4 on January, 3 15:00 (UTC). It will be non-rated event, just to test system before important Codeforces Round #100. The round duration is 1 hour and it will contain just two problems. I do not promise something interesting and exciting, but as a small warm-up will be nice :)

I'll be glad to see you on the round,
MikeMirzayanov

The testing is successfully completed. Thank you for participation. I hope you like this sprint.

Full text and comments »

Announcement of Codeforces Testing Round 4
  • Vote: I like it
  • +92
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Codeforces project congratulates everybody who is into sport programming with New Year! A New Year is not just an increment of a year. Let this day be a starting point to your new achievements, accomplishments and success. Codeforces wishes you to find out by the end of 2012 that all your resolutions have been a success! We wish you to have interesting problems, nice solutions, correct code and more and more of beautiful green messages  Accepted.

As well as in the previous year, we enable handle change for ten days. The handle change is available from the "Settings  Handle" tab from your profile page. Handle change will be disabled on January 10, so don't lose the moment!

Happy New Year, Happy New Coding!
MikeMirzayanov

Full text and comments »

  • Vote: I like it
  • +71
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Hi everybody!

The calendar shows the end of December — the year 2011 is about to end. It was an eventful and exciting time for us. You can find pictures below summarizing 2011 in comparison to 2010. In a nutshell, we've made it! We have grown in all parameters! This result is the shared victory of the well-united team. My special thanks go to the VK (VKontakte) and specifically — to Pavel Durov. The programmers' community and its development really matters to them. I want to thank the authors of the problems: preparing contests is tough and you are a significant help to the Codeforces project and to the whole community.

So, comparing the ending 2011 year and the 2010 year in pictures goes like this:

Codeforces users' growth throughout the Codeforces history (by months)

Full text and comments »

  • Vote: I like it
  • +249
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Hello, everybody.

New Year Holiday is a time of miracles and gifts! Quite by chance the 100th Codeforces round coincided with this wonderful moment.

So, January 4 at 15:00 (UTC) the anniversary Codeforces Round 100 will have place. Yes, we say goodbye to the word Beta in round titles :)

It will be a combined round, that is, participants Div1, Div2 and newcomers will compete with one set of problems. To make it interesting for each participant we plan to expand the round to 6 problems.

The most important thing: the best hundred participants of the 100th round will receive an exclusive Codeforces t-shirt!

Happy new year!
Codeforces Team

Full text and comments »

  • Vote: I like it
  • +341
  • Vote: I do not like it

By MikeMirzayanov, 13 years ago, translation, In English

Informal unrated contest Codeforces Testing Round #3 is scheduled on December, 2 (Friday), 15:00 (UTC). We will test the latest innovations on Codeforces that they do not affect the contests. If not, we will fix it quickly :) So, this round will take place "as is", no warranty about it.

Problems for the round may be famous to someone, but I'll try to make them such not for any of you. It will be 3-4 problems, as quite simple and something more tricky. The contest duratiuon is 1 hour.

I say thanks in advance to all those who will come and test the system. Thank you!

MikeMirzayanov

Full text and comments »

Announcement of Codeforces Testing Round 3
  • Vote: I like it
  • +81
  • Vote: I do not like it