MikeMirzayanov's blog

By MikeMirzayanov, history, 10 years ago, translation, In English

On May, 5, 16:05 (UTC) Codeforces Round 350 is going to start! Yes, pay attention to the non-standard start time.

I took advantage of my official position and the round is expected to be a bit experimental with an expanded set of problems. Perhaps for experienced participants (sorry, Div 1) it could seem easy. This time, emphasis was placed on the main target audience of the round: so in the round will be a lot of very simple problems, but even the top of the second division will find something interesting. In addition, one of the problems will be offered in two versions — in a simplified version with small constraints and in a harder version with greater constraints. Thus, if you immediately realize solution for large constraints, you can write and submit the same code on the both version.

The problem writers are me and fcspartakm. We hope that you will enjoy the problems and the round will be fun and useful!

The expected scoring is:

  • A: 500
  • B: 750
  • C: 1000
  • D1: 1000
  • D2: 500 (i.e. the complete solution of D is 1500 points)
  • E: 2000
  • F: 2500

Good luck!

UPD: As it was pointed in the comments we have a tricky point about hacks with problems D1/D2.

  1. To avoid the situation when participant locks the problem D1 and looks the solution of the problem D2 in his room, you are allowed to lock the problems D1/D2 only together in the same time and only if both of your solutions for this problems passed the pretests. In the other words, the possibility to lock D1/D2 will appears only after you solved both problems. The problems D1/D2 will be locked together in the same moment.

  2. To avoid the situation of double reward for hack of D1 and D2 of the same participant, the participant A after successful hack of the participant B on the problem D1 loses the possibility of the hack B on the problem D2. Similarly if the participant A successfully hacks the participant B on the problem D2, then A loses the possibility of the hack B on D1.

UPD 2: The round is over. My congratulations to the winners! Here are the heroes of the round.

The Top-5 among the official participants:

  1. xlk200
  2. TableEnterer_Lin
  3. cykhhq595
  4. xxxholic
  5. A_Navie_Moer

The Top-5 among the unofficial participants:

  1. anta
  2. -XraY-
  3. Um_nik
  4. halyavin
  5. Enchom

UPD 3: Problem analysis is now available.

Full text and comments »

Tags 350
  • Vote: I like it
  • +466
  • Vote: I do not like it

By MikeMirzayanov, history, 10 years ago, translation, In English

April 25, 18:00 (UTC) the second Wild-card round of VK Cup 2016 will take place.

Participants are invited to achieve progress in solving an unusual problem. VK Cup teams which were advanced to the Round 2 (and didn't advance to the Round 3) will take part in VK Cup 2016 - Wild Card Round 2 officially. In addition, this round will be open to the public for unofficial participation for everybody. Registration will be open for the whole round duration.

The round will be one week long. After the end latest submission (with positive score) of each participant will be judged on system tests.

Good luck!

UPD 1: Unfortunately, it turned out that most of current tests were not various enough and did not cover different scenarios of the testing system. Tests in the system have been updated, all submissions will be rejudged. Perhaps the rejudging process will take some time. In addition, the scoring function has been updated (its monotony maintained). Because of this, points for your submissions changed a bit. The restriction on the number of submissions has been added (up to 20000). Check out the updated statement for details.

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello!

Last weeks I was concerned (and probably, you too) about abnormal rating growth of our leaders. Of course, first of all I'm talking about tourist, his rating is just rushed into the sky.

There were even comments from a series of "I told, and it happened"

After the first round of VK Cup 2016, I carefully investigated the reasons of such growth and found a simple and trivial bug in the rating formulas. It's funny that even after being published, nobody found it. Look at this function:

    private double getSeed(List<Contestant> contestants, Contestant contestant, int rating) {
        Contestant extraContestant = new Contestant(null, 0, 0, rating);
        double result = 1;
        for (Contestant other : contestants) {
            result += getEloWinProbability(other, extraContestant);
        }
        return result;
    }

Remind, this feature is to calculate the expected participant place, if its rating suddenly became equal to rating. Of course, it should not take account of the participant itself (to whom we currently assign new hypothetical rating). The correct code must be:

        for (Contestant other : contestants) {
            if (other != contestant) {
                result += getEloWinProbability(other, extraContestant);
            }
        }

This bug led to the fact that taking the first place tourist actually won a very serious opponent. Himself. This led to a significant increase in its rating, even if the first was quite expected.

The good news is that this bug has a statistically significant effect only in the very rare cases when the winner (or close to the winner) had a very high rating (yes, contrary to "anti-heroes" is also true). If we take an arbitrary round and recalculate the rating formulas corrected, almost all participants will receive exactly (or very close) rating.

After consulting with tourist and Petr, I came to the following plan of action:

  • Today we had chronologically recalculated all ratings from the revolution of 2015,
  • If difference between the change according to the corrected rating formulas and the historical change (according to formulas with a bug) is no more than 3, the historic change continued to be used,
  • If difference between the change according to the corrected rating formulas and the historical change (according to formulas with a bug) is more than 3, the change is replaced with the correct rating in history.

It turned out that this bug did not affect practically all users. Bug touched only the top. I apologize to those who had descended from heaven to earth — but it was impossible to leave it as is. I wish leaders to get those ratings that were before rating fix.

Mike.

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Sentimental moment for me: going through old things I've found something ancient

What most ancient (or most ancient) contest t-shirt do you have?

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello.

Now it became much unlikely to skip a round due to carelessness during the registration. In the coming rounds (in experimental mode) we will add new feature extra registration (it is good terminology? additional registration?).

This means that after the period of regular registration (as usual, 5 minutes before the start of a round it will be closed) there will be another additional period of registration. It will start in 10 minutes after the start of the round with duration of 20 minutes, that is, it will close after 30 minutes from the start of the round.

The role of the 10 minutes is twofold:

  • on the one hand it is quite possible to solve the easiest problem in the first 10 minutes — so it makes a motivation to register on time,
  • on the other hand the system is loaded much during the first minutes of a round, as a registration invalidates some internal caches it is better to open extra registration after 10 minutes.

When registering during the extra time a participant is automatically assigned to a random room (among suitable for its role).

Full text and comments »

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

By MikeMirzayanov, 10 years ago, translation, In English

The Qualification Round of the "CROC 2016" Championship will start on March, 16, 09:00 (UTC).

Please, read about the Championship by the link http://mirror.codeforces.com/blog/entry/43229

You need to participate in the Qualification Round to make it to Round 1. All contestants who gain a positive score will advance to the Round 1.

At the Qualification Round you will find a few 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 48 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 48 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. The problems will be in English as well as in Russian.

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 participants 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. If you are not registered to the Championship officially, you can take part in the round out-of-championship.

Best of luck and enjoy solving the problems!

Full text and comments »

Announcement of CROC 2016 - Qualification
  • Vote: I like it
  • +116
  • Vote: I do not like it

By MikeMirzayanov, 10 years ago, translation, In English

Hello, Codeforces!

In the spring 2016 the company CROC together with Codeforces will hold the third Russian Open programming championship «CROC – 2016». The goal of this project, as before, — encourage of the most talented and innovative young specialists and stimulate interest to the information technology.

As usual CROC company pays great attention to social projects, associated with the development of the IT-industry, to promotion of IT-professions and to the increasing interest in modern technology. CROC has rich experience of cooperation with universities, the organization of courses, seminars and competitions for pupils, students and experienced professionals.

The registration to the championship will be open from March, 1st to March, 16. Anyone, regardless of nationality, place of residence and level of education, can be a participant. The official language of the competition is Russian. Championship participants will take part in two main rounds: elimination round, which will take place in early March, and the final. There will be 50 strongest participants competing in Moscow on April, 15. CROC will cover transport costs in the amount of no more than 10000 rubles (it is about 135 USD). All finalists should confirm their will and ability to visit Moscow to take part in the Final before March 25. CROC will not be able to help you with visa (if it needed), so our primary target audience is Russian participants and participants from some ex-USSR countries. But two years ago rng_58 visited our Finals!

A warm welcome, meeting with the organizers of the event and experts in software development in the CROC, a festive buffet, a fascinating game round and great prizes and gifts are waiting for the finalists. Previous programming championship by CROC was held in 2013 and brought together ~3500 programmers from all over Russia, CIS and other countries.

Prizes

  • 1 place — 100000 rubles
  • 2 place — 70000 rubles
  • 3 place — 50000 rubles

The prize for the winner of the game round is a laptop.

Schedule stages of the championship

  • Qualification Round – 16 of March
  • Elimination Round – 18 of March
  • Finals will be held on April 15 in Moscow in the office of the CROC (50 participants)

All rounds will be open for unofficial participation for everyone. The Elemination and Finals rounds will be rated regardless of participation type (official or not).

Registration

To take part in the championship you have to register on the special page. Registration will be open until the end of the qualification round. Compete with the best programmers in the Open Championship "CROC-2016"!



Register Now!


The history of the CROC championships

The upcoming championship will be the third championship, conducted by the CROC on Codeforces. You can find the information about this championships by clicking on the links below:

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello.

Now Codeforces will be more convenient to browse from mobile platforms. For the majority of them mobile view is available now. The menu goes to the left panel and sidebar — to the right. Both panels are available either on special icon at the top of the page, or by swipe left/right. You can hide them by touch in the main area of ​​the page, or by reverse swipe. In the mobile view fonts are enlarged, so on most screens it is possible to read the website without zoom.

So, for example, how the sidebar appears on my phone:

example

You can switch off mobile view (or to switch off) by clicking the special link in the bottom of any page.

P.S. In old browsers, and generally on a non-webkit it may work incorrectly. Not sure it is easy to fix :-(

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello!

Here are some statistics about 2015. I'm glad to see our growth. Frankly, each year I'm afraid to see that we stop to grow, but each year I see 20-50% growth! Thank you for your interest :-)

In addition, I have written before about progress in the development and championships and rounds with partner companies in 2015. If you have not read, please read.

Here are the funny pictures with the statistics:


Growth of registerations. This year we overcame 300K users!

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello!

I congratulate New Year to the entire Codeforces community! I wish you interesting problems, beautiful solutions and successful attempts in the last seconds! I wish not to lose interest in programming, to believe in themselves and regularly find confirmation of this belief. And do not get sick and more smile (even if your rating decreases). Hooray!

The profile settings appear magical section. Happy New Year!

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, In English

Hurry! Only until the 10th of January, you can change your handle (but only once)! Note that it will be possible to roll back the changes or change the handle again only after a year. Be careful what you wish for.

You can change your handle to the new one which wasn't used before by anybody or which was used by you before. The links to a profile page with old handle would automatically redirect to the actual profile.

Talking about handles I always reminisce the following story. Once a user wrote me the message: "Please change my handle from I_love_Valya to I_love_Sveta, as I no longer love Valya ..."

Happy New Year!

Full text and comments »

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

By MikeMirzayanov, 10 years ago, translation, In English

Hello!

In 2015 we have not only engaged in the organization of rounds and championships. Every day we write the code, debug, test and explore a variety of tools and technologies to make Codeforces better. Even if in some periods you have not seen great changes on the website, it does not mean that the development was stopped — just some of the innovations relate solely to infrastructure, architecture or administrative interfaces and are not visible to the users.

I have collected in a list of all the innovations, which touch users in some sense. This faceless list includes results of many days of work of each member (sometimes with prefix ex-) of Codeforces technical team: MikeMirzayanov, MaximShipko, kuviman, fcspartakm, Avalanche. There are valuable helpers Edvard (helped with the introduction of educational rounds), stingray (constant help with the administration and configuration of servers is priceless), demlit and lthirteenthl (assistance with the administration and hardware). And I just listed those who assist in technical terms — there is an important list of all of those who contributed to the life of Codeforces in other aspects. Thank you!

Here is the promised list of completed (sometimes partially) cases in 2015, the year.

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello everybody!

I hope you have the holiday spirit!

Later I will publish statistics for the year and tell you about our achievements of this year, and for now I will talk about championships and competitions that we made with our partners in 2015. My speech does not include any activities that we have conducted very far from the Codeforces site (e.g., Russian AI Cup).

This year is remembered by many interesting events that we did not by ourselves, but together with partners. I am particularly pleased that all companies who wished to fill the ranks of their employees found worthy candidates among our members. And someone said that the Olympiads are not needed! That is a lie. Here is the list of events:


VK Cup 2015

VK

Team Championship for young participants, was conducted in Russian. 2349 registered teams of two (rarely of 1 participant). The coolest prize money and rich finals in St. Petersburg. Organizer is the VK company.


Rockethon 2015

Rocket Fuel

Open individual competition by the original rules of the Rocket Fuel company. More than 3600 participants and 6565 registrations!


ZeptoLab Code Rush 2015

ZeptoLab

Individual competition by the classical rules of the ZeptoLab company. 3090 participants and 5504 registrations, excellent presents for the winners! And insanely beautiful drawings from ZeptoLab artists!


Looksery Cup 2015

! Looksery

Individual competition by the classical rules of the Looksery company. This company did not only congratulate us on our 5th anniversary, but conducted such a cool round. And the fund of the company's founder had very cool initiatives supporting the development of sports programming! 3528 participants and 5714 registrations. Yes, the gifts are yet on the way!


AIM Fund Round 2015

AIM Fund

Individual competition in two divisions by the classical rules of the AIM Fund company. Prepared in the context of congratulating Codeforces on the 5th anniversary, thank you! 4064 participants and 6721 registrations. I've heard a lot about the after-party in Petrozavodsk. I wish I had been there!


Call To Code 2015

Google

A competition for Irish schoolchildren by unusual rules. It was not conducted on the Codeforces site, but on our platform. Organized by the Google company.

Full text and comments »

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

By MikeMirzayanov, history, 10 years ago, translation, In English

Hello.

Now you do not have to go into Google if you need to search blog posts. You can do it directly on Codeforces. The implemented search is based on Apache Lucene . The index contains all open public posts, which are already more than 15,000 documents.

Temporarily search for tags are now available (tags will be added to the index soon), but instead you have the opportunity to find posts and even sort using different criteria. By the way, you can use complete syntax of Lucene queries to search. Here is a short description of main features.

You can use several words in query to find by all of them at the same time. In addition, if you are lucky search understands word forms and some synonyms. It supports search by title and author.

Some examples:

  • 305 — search for 305, most probably it will find blogs about the Round 305
  • andrew stankevich contests — search for words "andrew", "stankevich" and "contests" at the same time
  • user:mikemirzayanov title:testlib — search containing "testlib" in title by MikeMirzayanov
  • "vk cup" — use quotes to find phrase as is
  • title:educational search in title

Regarding indexing comments, solutions and problem statements I have a feeling that it may be useless. Too difficult to find something relevant (or maybe not). What do you think: should we implement it?

Full text and comments »

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