MikeMirzayanov's blog

By MikeMirzayanov2 weeks ago, In Russian

Всем привет!

Пришла пора опубликовать фотографии с прошедшего чемпионата. Напоминаю, 27-го апреля в гостеприимном офиса КРОК прошел финал Чемпионата Москвы и МО. Так как Чемпионат был открытым, то присутствовали не только москвичи — были участники из других городов России и даже из ближнего зарубежья.

Ниже много мегабайт фотографий!

Read more »

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

By MikeMirzayanov3 weeks ago, translation, In English

Now it is quite easy to include albums from Picasa. The album should be publicly available for viewing by the link. Add into the text [photoalbum:URL], example: [photoalbum:https://picasaweb.google.com/114907919772955385569/2012?authuser=0&feat=directlink].

Please publish only photo albums dedicated to programming competitions or around it, interesting to the general public.

Read more »

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

By MikeMirzayanov4 weeks ago, translation, In English

Hello!

Today it will be good old ACM-ICPC round. Yes, it will be the rated event for the second division, and the participants of the first division will be able to participate out of competition.

Problems have been prepared by Nerevar, natalia, MikeMirzayanov and homo_sapiens, and delinur translated all the problems. Thanks!

Good luck!

UPD: Ratings will be updated later. Sorry for delay.

Read more »

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

By MikeMirzayanov6 weeks ago, translation, In English

Hi everybody!

Let me remind you that on the 3rd of April, at 08:00 the Qualification Round of the Open Moscow Programming Championship By CROC will start.

You need to participate in the Qualification Round to make it to Round 1. Contestants who gain a score equal to the 1000-th place finisher score or greater will advance to the Round 1 (also you need to gain positive score).

At the Qualification Round you will find a few simple problems, roughly ordered by the increasing complexity. During the Qualification Round 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 Round has 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: The contest is over! Thank you for your participation. We will remove cheaters soon and the results will become official. Unofficially, the Round 1 cutoff is 1950 points.

UPD 2: We have removed obvious cheaters and people who are under 18 years old at the time of registration. If your results have been removed in error, please contact me for clarification. Now, the Round 1 cutoff is 1900 points.

Read more »

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

By MikeMirzayanov7 weeks ago, translation, In English

Hello!

Welcome to the VK Cup 2012 Wild-card Round 2!

It will be a week-long contest with the only problem. It seems the problem doesn’t have an exact solution. So as better answer your solution finds as more points you’ll get! Of course, it is not all the details. Full text of conditions and the rules of scoring you will be able to read immediately after the round starts.

If you was an official VK Cup 2012 Round 2 participant but didn’t advance to the Round 3, you have the last chance to do it! Take part in VK Cup 2012 Wild-card Round 2 and be in the top 25 to advance to the Round 3. All others are members of the community can take part in the round out-of-competition, just for fun. Anyway, it will be unrated round to any of you.

Remember that after the contest ends your last attempt which passes at least one test will be judged on the main testset. You may try to solve problem as many times as you want.

Good luck! Let the best man win!

P.S. I must leave it here. During the contest is strictly forbidden to post/discuss algorithms/approaches for the problem, share any conclusions about the problem. You can not share the results (including just report score points) of the solutions on any tests. It is prohibited to publish tools to simplify and automate the process of solving the problem.

Thanks Nickolas, for the great problem!

UPD: The contest is over, the testing is completed. Congratulations to the first 25 finishers — standings, you are in the VK Cup 2012 Round 3!

Read more »

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

By MikeMirzayanov2 months ago, translation, In English

Hello.

VK Cup 2012 Round 2 will be held in two editions:

In each of these editions the ratings will be updated (separately). In the first edition the ratings will be updated according to the results of participant of both types: official and unofficial. Ratings of the participants of both types will be updated. In the second edition it is easier — there is only one type of participants and and their ratings will be updated in typical way.

Read more »

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

By MikeMirzayanov2 months ago, translation, In English

Hello everyone.

The idea of dynamic problem scores is not new. As far as I can remember, something that was discussed back in 2000. Since then, the issue has surfaced several times — one of the latest experiments have been organized by Alex_KPR.

Why do we need different problem scores? As correctly observed RAD, they are actually needed for contests where the solution has a chance to fail after coding phase. For example, Bob solved easy A, and Peter solved easy A and really hard B. But Peter’s A failed system tests and he solved B later (and may not from the first attempt). In this case, if the problems were equal in value, Peter will take place below Bob, that somehow unfair.

Typically Codeforces problems has divible by 500 values: 500, 1000, 1500, etc. Usually we try to pick up a 5-problems sets, varying in complexity. In this case, each contestant will find interesting problems (for him/her). The traditional set of tasks includes problems 500-1000-1500-2000-2500.

In practice, it’s not that simple. Sometimes it turns out that the authors and testers did not guess the complexity of the problem in terms of regular contestants. What to do?

The experiment is as follows. Assign the value of the task dynamically depending on the number who have solved this problem. During the main contest time here will be taken into account the submissions with verdict “Pretests passed”, but after system test — “Accepted”. Of course, solutions of out-of-competition participants will not be counted.

The idea is as follows:

  • If a problem solved by half to all the contestants, then it is worth 500 points,
  • If a problem solved by quater to half of all the contestants, then it is worth 1000 points,
  • And so on.

More formally, in the following table:

Solvers fraction Max. problem points
(1/2, 1] 500
(1/4, 1/2] 1000
(1/8, 1/4] 1500
(1/16, 1/8] 2000
(1/32, 1/16] 2500
[0, 1/32] 3000 (maximum problem score)

Number of round participants = who made at least one attempt in this round.

That’s it! As you can see the idea is very simple and not overloaded with formulas and details. You may view results of past Codeforces contests by links like “Final standings”. We temporary recalculated results according experimental rules. Later we will return them back.

Today [contest:1666] will use such experimental rules. We guarantee that the problem A will be easiest problem (as Jury thinks), but the order of the remaining problems — random. Good luck!

Read more »

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

By MikeMirzayanov2 months ago, translation, In English

CROC invites talented and innovative programmers (at least 18 years old) to participate in the Open Moscow Programming Championship. The championship is held on the basis of the Codeforces project. Saratov State University involved into jury and the technical committee. The official championship language is Russian, but the problems will be in Russian and English.

The championship will consist of qualification, two online rounds (on April 3-4, 6 and 20) and the final round that will take place on April, 27 in Moscow in the CROC Headquarters. The championship finals will also include a AI-game round.

The championship winners will be awarded with valuable prizes: the first place winner gets 100000 rubles, the second and third place winners get Apple MacBook Pro. The contestant who wins the first place in the AI-game round will be awarded with an Apple MacBook Air.

To participate in the championship, you must register on http://www.crocok.ru/championship/ (in Russian) before April 4, 2012.

You can also learn more about the project if you follow the link http://crocok.ru and click the tab called “Programming Championship”.

Read more »

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

By MikeMirzayanov2 months ago, In Russian

Добавил в тренировки VI Открытая олимпиада школьников по программированию, заочный этап. Специально засек — с момента открытия страницы с тестами и условиями в браузере до финальной публикации контеста прошло 17 минут :)

Почему-то организаторы не публикуют авторские решения. По этой причине тренировка добавлена без капитальной проверки тестов и т.п. Может организаторы опубликуют решения? А еще лучше выложат архив контеста прям из Полигона (вроде бы контест создавался там).

Если кто-то из участников засабмитит свои решения в дорешивание этого контеста, будет отлично — так проверим ограничения времени/памяти и отсутствие разных багов при импорте.

Еще один вопрос к участникам — как вы оцениваете сложность контеста по шкале 5 звезд? Описание можно посмотреть в тренировках (тултипы на звездах существующих тренировок).

Read more »

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

By MikeMirzayanov2 months 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
  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++ 2005
    • 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
  1. 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.

  2. 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).

  3. If a compilation error occurs, than the contestant gets the judging result as ‘Compilation error’ and the compilation log.

  4. The size of the file with the source code shouldn’t exceed 64 kilobytes.

  5. 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 -DONLINEJUDGE -lm -s -x c++ -Wl,–stack=268435456 -O2 -std=c++0x -D_USE_MINGW_ANSI_STDIO=0 -o %name%.exe %1
MS VS C++ 2005 cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE %1
Free Pascal 2 fpc.exe -dONLINE_JUDGE -So -XS %1 -o%name%.exe
Delphi 7 dcc32 -Q -DONLINE_JUDGE -cc %1
C# Mono 2 gmcs -define:ONLINE_JUDGE -o+ -out:%name%.mono-exe %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 See Java
Perl perl.exe %s

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.

  2. It is forbidden to use somebody else’s code in the solution.

  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. 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.

Read more »

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

By MikeMirzayanov2 months 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!

Read more »

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

By MikeMirzayanov2 months 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!

Read more »

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

By MikeMirzayanov2 months 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.

Read more »

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

By MikeMirzayanov2 months ago, In Russian

Добрый день.

По единогласному решению Codeforces и организаторов Чемпионата VK Cup 2012 со стороны ВКонтакте вопрос о смягчении ограничений пользователю anonymous будет решен при заявлении от него, содержащем раскаяние в фактах нарушения правил и обещание впредь не нарушать правила.

Деятельность сообщества по привлечению к этому вопросу внимания является дополнительным важным аргументом.

UPD. Было получено заявление, по результатам рассмотрения которого пользователь I_love_natalia (кроме того известный как anonymous) был восстановлен в правах члена сообщества Codeforces.

Read more »

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

By MikeMirzayanov2 months 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.

Read more »

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

By MikeMirzayanov3 months 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.

Read more »

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

By MikeMirzayanov3 months ago, In Russian

Добавлен еще один контест Саратовского ГУ с Петрозаводских сборов. Кстати, если я правильно помню первое место в нем заняла команда Jury в составе Лопатин, Дуров и … эх, забыл. Может кто-нибудь помнит?

Решайте на здоровье!

UPD. Боюсь на современных компьютерах можно будет кое-где пропихать медленные решения, скоро поставлю ограничение в 0.25 сек.

Read more »

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

By MikeMirzayanov3 months ago, In Russian

Опубликован первый саратовский контест на Петрозаводских сборах. Это было в далеком 2002-ом году, тогда сборы проходили на природе, на берегу Урозеро. Именно на тех сборах наша команда познакомилась с Андреем Лопатиным, Олегом Христенко и большим и дружным коллективом из Петрозаводска: Кузнецовым В.А., Петровичем, Романом Сошкиным. Короче, сборы были замечательные, а мы заняли там первое место.

К сожалению, у меня не осталось результатов того контеста (с минутами сдачи задач), так что призраков в этом контесте нет. Если у кого есть результаты — делитесь.

Read more »

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

By MikeMirzayanov4 months 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 :)

Read more »

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

By MikeMirzayanov4 months 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.com/;
  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

Read more »

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

By MikeMirzayanov4 months 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

Read more »

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

By MikeMirzayanov4 months 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?

Read more »

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

By MikeMirzayanov4 months 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.

Read more »

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

By MikeMirzayanov4 months ago, In Russian

Постараюсь коротко, без эмоций.

Раунд 103, пользователь ZHULIKI_I_VORY. Кто-то довольно неплохо решающий задачи, скорее всего чей-то второй или третий аккаунт. Заходил на сайт с IP-адреса xxx.xxx.xxx.xxx (скрыто по просьбе), с которого так же заходили такие "пользователи": anonymous, Happy_New_Year, Happy_New_Year_1, I_love_natalia, Letter_to_Joulupukki, MEGAKILLER, notanonymous, Red_Joda, Santa_Claus, werbeH, Yoda. Да, среди них почти все в настоящий момент забанены как левые аккаунты. Кто из списка не забанен? I_love_natalia и MEGAKILLER.

Раунд 101, пользователи V_CHUROV и EDINAYA_ROSSIYA. Забанены за использование идентичного кода. Но на этом история не заканчивается, так как IP-адрес yyy.yyy.yyy.yyy (скрыто по просьбе), откуда заходил EDINAYA_ROSSIYA, оказался довольно любопытным. С этого адреса заходили: anonymous, EDINAYA_ROSSIYA, I_love_natalia, MEDVEPUT, MEGAKILLER. Знакомая компания? Не забанены из них только I_love_natalia (он же anonymous) и MEGAKILLER.

Раунд 100. Зеленый пользователь MEGAKILLER поразил жюри своей проворностью и расторопностью. Еще бы! За призовую футболку он неожиданно стал соперничать с красными кодерами на равных. Я специально подождал, а не проснется ли у него совесть? Нет. Он благополучно заполнил форму на получение футболки, нагло солгав в пункте "Отсылая форму, вы подтверждаете, что все внесенные данные соответствуют лично вам - победителю 100-го раунда."

Давайте посмотрим на исходные коды пользователей I_love_natalia (он же anonymous), MEGAKILLER, EDINAYA_ROSSIYA, V_CHUROV, ZHULIKI_I_VORY. Легко видеть, что у всех них не только общие IP-адреса, но и полностью совпадает стиль написания кода. Я, как преподаватель в области программирования со стажем более 10 лет и познакомившийся с кодом сотен учеников, заявляю, что манера написания - она как почерк. В данном случае очевидно, что это один и тот же человек.

Интересно, что нет ни одного упоминания о значимых достижениях Александра Константиновича Рябова (на которого выписана призовая футболка) в области спортивного программирования. Да-да, "Отсылая форму, вы подтверждаете, что все внесенные данные соответствуют лично вам - победителю 100-го раунда.". А ведь это один из сильнейших участников планеты! В "честной" борьбе он занял 48-е место среди 1900 участников со всего мира.

Кроме того, I_love_natalia (он же anonymous) неоднократно в комментариях сам признавался в создании двойных аккаунтов, регистрации аккаунтов скриптом и накрутках вклада.

Таким образом, были многократно нарушены следующие правила Codeforces:

  • "Не создавайте более одного аккаунта, если вы забыли пароль, то воспользуйтесь системой напоминания пароля."
  • "Не пытайтесь дестабилизировать работу как сайта, так и проверяющей системы. Ваши программы должны взаимодействовать только с консолью (для задач со стандартным вводом-выводом) или файлами входных и выходных данных."
  • Нарушены правила регистрации на раунд: "не используете несколько аккаунтов, а в соревновании принимаете участие со своего личного и единственного аккаунта".
  • "Отсылая форму, вы подтверждаете, что все внесенные данные соответствуют лично в вам - победителю 100-го раунда."

Кроме того, неоднократно нарушены правила элементарного уважения к сообществу. Участие в раунде с призами под левым аккаунтом с указанием левого человека в качестве победителя. Обман членов сообщества (например, следующий комментарий является ложью и опровергается логами системы "Первый раз - да. А потом, когда я поменял у своего placeholder-a ник с anonymous на notanonymous, оказалось, что нельзя поменять ник на имевшийся ранее, можно только зарегать... В общем, пока я регал почту, чтобы зарегать ник, кто-то зарегал anonymous-а. За 3 минуты поймали :(").

На вычищение результатов баловства этого пользователя (левые аккаунты, удаление накруток, поиск подтверждений для дисквалификации разных его ипостасей, проведение этого расследования) суммарно было лично мной потрачено не менее нескольких полноценных рабочих дней. Это время я бы провел за внедрением нововведений, полезных сообществу.

Это неприятно и грустно, что Константин Дроздов, один из лучших участников из Самары, человек, который занимается с младшими школьниками и студентами, занимается подобной ерундой. Да, личность этого человека не является тайной для меня и многих членов сообщества. В данном случае я не могу поддерживать эту игру в анонимность.

Не утверждаю, что Константин Дроздов приносил только вред проекту. Многие его комментарии были по делу, иногда он писал интересные посты, репортил нам о багах, участвовал в соревнованиях и провел один раунд помогал в проведении раунда. Однако нельзя просто игнорировать правила и смеяться над нормами. Нельзя ставить себя выше других. Нельзя настолько не уважать людей, в гости к которым ты пришел.

По причине многократного нарушения правил Codeforces Константин Дроздов, он же I_love_natalia, он же anonymous получает пожизненную дисквалификацию в системе Codeforces и ему запрещается участвовать в любых соревнованиях, проводимых на этой платформе. Бан распространяется на все составляющие Codeforces (включая, но не ограничиваясь, социальной сетью, системой проведения контестов, разделом тренировок).

Вся активность этого пользователя или любого другого, кто выдает себя за него или таковым является, будет удаляться без предупреждения.

Я надеюсь, что Константин Дроздов найдет в себе силы и мужество прожить без Codeforces. Нам не по пути.

Проекту Codeforces было нелегко принять такое решение. Мы надеялись на то, что нарушения прекратятся. Раунд 100 и последующие показали, что мы были не правы, а нарушений становится слишком много. Нам жаль, прощай, anonymous.

Codeforces выражает надежду, что здесь собираются адекватные люди, которые умеют уважать друг друга. Мы и впредь не будем закрывать глаза на явное неуважение к проекту.

MikeMirzayanov

Ниже приведены комментарии тех, кто является частью команды Codeforces или когда-либо приложил большое количество сил к тому, что проект состоялся.

  • С решением согласен на 100%. Andrew Lazarev.
  • С решением согласен. Dmitry Matov.
  • Правила были нарушены многократно, поэтому с дисквалификацией согласен. Edvard Davtyan
  • С решением согласен. Maxim Shipko.
  • Согласен. Stingray
  • Согласен. Artem Rakhov
  • Согласна. Мария Белова
  • С решением согласен. Dmitry Levshunov.

Read more »

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

By MikeMirzayanov4 months 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.

Read more »

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