MikeMirzayanov's blog

By MikeMirzayanov, 5 years ago, In English

Hello, Codeforces!

Paul stingray Komkoff is my hero! He found some issues in the network configuration. The most important of them was about flow control auto-negotiation: in case of our network routers the number of dropped packets reduced in times. Thanks!

To be sure that it really helped to fix the issue I ask you to take part in Testing Round 16 (Unrated). It will start on May/07/2020 17:05 (Moscow time). Probably, it will contain 3 easy problems which are not prepared for now (I'll use some old problems, I think). The only reason to host the round is to check the system under a load. It will be an unrated round.

I am upset about what happened with the last round. Once again, I apologize to both the participants and the writer, coordinator and testers. I wrote Monogon about the incident and apologized.

I am sure that the only way to absolutely prevent unrated rounds is just don't host them. And this is not my way. The most popular rounds were hosted without noticeable technical problems. And I'm sure the main records are yet to come. I ask the writers and coordinators to look forward with optimism and try to please us with problems.

Please, join to the testing round. See you!

— Mike.

UPD: Thank you for testing! I think the system worked great. It seems recent reconfiguration improved system performance and stability. We have some rare "Judgement failed" after database update (I'll try to fix them asap).

Full text and comments »

Announcement of Testing Round 16 (Unrated)
  • Vote: I like it
  • +1625
  • Vote: I do not like it

By MikeMirzayanov, 5 years ago, In English

Sorry about it. Probably, the main reason is a network misconfiguration which leads to degradation of connection speed between some services. Strange things that I didn't change any network settings. Actually, both slow judging and logout issues are sides of the same coin. I asked for the help of the experienced specialist to help me. We are continuing to work on it. No more details at this moment. Sorry again. I'll run testing round before the next round to be sure that everything is OK.

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello, Codeforces!

Unfortunately, I report that I decided to reschedule this round. I'm afraid that something might go wrong. Some strange database behavior has appeared, which leads to slow operation in completely unexpected places (it never was and should not be). I will work hard to fix it. My recent tests show that this can dramatically increase judging time (and leads to a huge queue). I don't want to risk the efforts of the writer, the coordinator, testers, and your time. Sorry about it, I was trying to fix it for many hours but I need more time. Hope it will be a great round!

Mike.

UPD 1: I temporarily rescheduled it on May, 6. But I'll discuss the date with the writer and coordinator and reschedule it again to the date they want.

UPD 2: Monogon approved that May/06/2020 17:35 (Moscow time) is good new date and time for the round. See you in 3 days!

UPD 3: It seems I've fixed the issue. It turned that it was connected with week ago incident. Now it is 4 AM and time to sleep.

Full text and comments »

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

By MikeMirzayanov, history, 5 years ago, In English

Hi!

As many have noticed, sometimes problem ratings were assigned in a strange way that was not consistent with expectations. For example, ratings for complex problems of Div3 rounds were often overestimated. This was mainly due to the fact that high-ranking unofficial participants did not try such problems. It turned out that despite the high rating of a participant, a problem is not solved by the participant, and this fact raised the rating of the problem. It is not entirely correct to take into account only official participants since ratings for difficult problems are sometimes more accurately determined by unofficial participants.

Somewhere in the comments, I've read that problem ratings are set manually. Of course, this is not so. The process is automated, but I start it manually (I will fix it somehow).

I changed the formulas for calculating problem ratings, now they slightly better correspond to expectations. New problem ratings are already available on the website. I don't think they are perfect (but I hope that they are much better). If somewhere ratings obviously are wrong — it would be great to see such examples in the comments.

Thanks!

UPD 1: Thank you for examples of unexpected problem ratings. I'll try to fix them (I don't think that it is possible to fix all of them without manual work) and return with an update.

UPD 2 [May, 2]: I made another attempt to adjust the coefficients, to take into account some facts differently. The ratings are recalculated again. I carefully went through most of the comments and indicated new ratings. Now it looks a little better. I afraid, there are still some issues with some problems. Try to find them and demonstrate them in the comments. Thanks!

Full text and comments »

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

By MikeMirzayanov, history, 5 years ago, In English

Hi! Yes, I see that the top-rated block and some other features not working, but I don't have the strength to deal with it right now. Also, I didn't fix the ratings because of wrong division cases issues. Since yesterday, I was working on an unexpected behavior of the system on the increased load. A lot has been done. But three hours of sleep in the last two days is too little for me and I need some rest. Tomorrow I'll return to fix the issues and hope to deal with them. What about your quarantine?

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello, Codeforces.

I hope you wash your hands and feel great.

I added the support of 64-bit g++. If you are using Windows, you can easily install it via our minimalistic package manager PBOX running the command line pbox install msys2-mingw64-9.

Your solutions are compiled with the command line g++ -static -DONLINE_JUDGE -Wl,--stack=268435456 -O2 -std=c++17 program.cpp.

Now you can try to use int128 and other 64-bit specific features! In fact, I am slightly worried that the presence of such features may widen the gap between C ++ and other languages. Wait and see.

Currently, support for 64-bit C++ is experimental. For example, I would not be surprised if IO on it works slower in some cases (it is necessary to test!). I invite you to join the testing and experimentations. Share your impressions in the comments!

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello Codeforces!

You may know that the crowdfunding campaign on the occasion of the 10th anniversary of Codeforces is in full swing! I am pleased to inform you that the Reply Code Challenge not only prepare a great competition but also supported Codeforces, which means all of us! Thanks!

Please pay attention to the information below. I am sure that this is a great chance to compete.

And here is the message from the Reply Code Challenge:

Hello Codeforces!

We're glad to invite you to the upcoming Reply Code Challenge, on 12 March. It's a free online team-based challenge and you can choose between:

  • Standard Edition: designed for university students and professionals.
  • Teen Edition: designed for students aged 14 to 19.

Great prizes are waiting for the winning teams:

  • Standard Edition: each member of the winning team will win a Mac Book Pro™ 16’’. Each member of the second and third place team will receive Apple Watch Series 5™ and Apple Air-pods Pro™
  • Teen Edition: 5.000€ for the first team in the leader board, 2.000€ for the second and 1.000€ for the third place team.

When&Where?

Online at challenges.reply.com on March 12th from 4.30pm to 8.30pm CET. To play you must form a team by March 11th.

Follow us on our Telegram Channel, WIP but ready soon for the Challenge: https://t.me/replychallenges

Full text and comments »

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

By MikeMirzayanov, 5 years ago, translation, In English

Hi Codeforces!

The platform recently turned 10 years old. We accept your congratulations at https://codeforces.me/10years. Please review the progress in 2019 and support the anniversary crowdfunding campaign. Your donation will be a contribution to the future of Codeforces, will help its development and work. We need resources to continue to host rounds, not to stop developing, to innovate and to maintain the existing infrastructure.

In 2019, together with numerous writers the coordinators worked on problems: KAN, 300iq, cdkrot, arsijo and recently joined isaf27. And this year, rounds coordinated by other experienced members of our community can be expected. Intrigued?

The main innovations in the platform are implemented by me and the developers: kuviman, cannor147 and geranazavr555. Una_Shem provided great organizational assistance. Thanks!

I send special rays of gratitude to problem writers and testers! This year we have had more rounds than ever before!

Time to take stock of 2019.

Partner Events

We are pleased to hold programming competitions with companies or for companies. I'm sure this is a great way to support the community of young programmers and hire talented candidates. Here is a list of our main partners this year:

  • Telegram and personally Pavel Durov is supporting Codeforces activities for many years, every regular round is held with their help, thank you!
  • Mail.Ru — Technocup and Russian AI Cup
  • VK, VK Cup — now a personal multi-track competition for Russian-speaking programmers
  • XTX Markets, Codeforces Global Rounds — a series of 6 rounds with a separate scoring and souvenirs for the best participants
  • Harbour.Space University — a series of educational rounds, the selection of summer school Tech Scouts
  • JetBrains, Kotlin Heroes Rounds — Kotlin programming language contests
  • Huawei — research competition (marathon) with elements of machine learning
  • Forethought, Forethought Future Cup — a two-level competition with the Final at Forethought headquarters (San Francisco) and the mirror contest for worldwide participants
  • Dasha.AI, Dasha Code Championship — a two-level competition with the Final at St. Peterburg and Novosibirsk (and the mirror contest for worldwide participants)
  • VeeRoute — research competition (marathon)
  • Microsoft, Microsoft Q # Coding Contest — unusual quantum computing competition

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello, Codeforces.

Sorry, but for a reason independent of Codeforces, we are forced to cancel the round. It was planned as a mirror of an onsite-olympiad, but suddenly it turned out that this would not work.

We will try our best to please you with other rounds. Stay tuned!

The round Educational Codeforces Round 80 (Rated for Div. 2) will start on Jan/14/2020 17:35 (Moscow time). Hope to see you as a participant!

MikeMirzayanov

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

I am happy to wish you a Happy New Year! I wish you a great, bright, interesting New Year! Just believe that it can become so: difficulties will be left behind, and ahead of you will be a joy of victories and discoveries.

I wish all of us new interesting problems, records and achievements! Set new goals and be sure to try to achieve them! And do not go far, we will try to make your 2020 year more fun!

I thank with all my heart for the contribution to the community of coordinators, problem writers, testers, and those who wrote interesting posts and comments. Many thanks to the sponsors, partners and customers: you help the community not to stand still, give the opportunity to hold interesting events. Thanks to all visitors to the website and just not indifferent.

See you in the new year!

MikeMirzayanov

Full text and comments »

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

By MikeMirzayanov, 5 years ago, translation, In English

Hello!

It seems to me that over the past few years I have been writing something right while all normal people are celebrating the New Year. It's my tradition now! Actually, most of the core functionality of Codeforces was written on the New Year holidays of 2010: authorization, blogs, basic support for competitions.

Perhaps I want to spend the next year with interest improving something in the Codeforces infrastructure (yep, how you celebrate the New Year — so you will spend it). Or maybe it's just that it's not necessary to work on New Year's and I'm doing not what you need right now, but what would be nice to do someday.

This time I took a little time to add support for parsing command line parameters in testlib. I really don't like to write such lines of code int n = atoi(argv[3]); in generators. Actually for several reasons:

  • it is unsafe that the 3rd command line parameter may be absent;
  • It is unsafe that the 3rd command line parameter may not be a valid 32-bit integer.

Now, instead, you should write this: int n = opt<int>(3);. In addition, you can write like this int64_t m = opt<int64_t>(1); or bool t = opt<bool>(2); or even string s = opt(4);.

In addition, I supported named parameters. If there are too many parameters, then the entry g 10 20000 a true is less readable than g -n10 -m200000 -t=a -increment.

In this case, now you can use the following code snippets in your generator:

int n = opt<int>("n");
long long n = opt<long long>("m");
string t = opt("t");
bool increment = opt<bool>("increment");

You can freely mix parameter reading by index and by name.

The following options for writing named parameters are supported:

  • --key = value or-key = value;
  • --key value or-key value — if value is not a start of a new parameter (does not start with a hyphen or does not follow the letter after one/two hyphens);
  • --k12345 or-k12345 — if the key k is one letter and then a digit comes;
  • -prop or--prop — to enable boolean properties.

Below are examples of how to run several fictional generators:

g1 -n1
g2 --len=4 --s=oops
g3 -inc -shuffle -n=5
g4 --length 5 --total 21 -ord

Perhaps in a hurry, I can write something not in the best way, or even with bugs. I suggest you look at my last commits. I will be glad to suggestions or fixes.

Thanks for attention.

What traditions do you have for the New Year?

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Do you already have a New Year's mood?

And we have traditional gifts!

Change Handle Feature

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 an old handle would automatically redirect to the actual profile.

Again, this year if you took part in at least 10 rounds you can request a handle of an inactive participant. It means that the participant should have a period of activity on Codeforces of at most 180 days, this period should be in 2016 or earlier. The inactive participant can't have posted comments, messages and so on. It can't take part in more than 2 contests. It will be automatically renamed and informed by email. A user has the opportunity to request back his/her handle: in this case, we will roll back the change and return your previous handle to you. If you can't change your handle to another, it means that some requirement doesn't meet. Please do not ask me to do something with it. I'm not Santa Claus.

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

New Year's Masquerade of Colors and Ranks

The traditional magical tab has appeared in the profile setting. Happy New Year!

Full text and comments »

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

By MikeMirzayanov, 5 years ago, translation, In English

Many thanks to cannor147 and geranazavr555 for the help with the translation into English.

1259A - Happy Birthday, Polycarp!

Problem Writer: MikeMirzayanov

Editorial
1259B - Make Them Odd

Problem Writer: MikeMirzayanov

Editorial
1259C - As Simple as One and Two

Problem Writer: MikeMirzayanov

Editorial
1259D - Let's Play the Words?

Problem Writer: MikeMirzayanov

Editorial
1259E - Two Fairs

Problem Writer: MikeMirzayanov

Editorial
1259F - Beautiful Rectangle

Problem Writer: MikeMirzayanov

Editorial
1259G - Tree Elimination

Problem Writers: Endagorion

Editorial
1276E - Four Stones

Problem Writers: Endagorion

Editorial
1276F - Asterisk Substrings

Problem Writers: voidmax

Editorial

Full text and comments »

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

By MikeMirzayanov, 5 years ago, translation, In English

This weekend, on Dec/14/2019 14:05 (Moscow time) we will hold Codeforces Round 606. It is based on problems of Technocup 2020 Elimination Round 4 that will be held at the same time.

Technocup is a major olympiad for Russian-speaking high-school students, so if you fit into this category, please register at Technocup 2020 website and take part in Technocup 2020 - Elimination Round 4.

Problem authors are me, Endagorion and voidmax. Many thanks to the testers: Kostroma, never_giveup, Supermagzzz, AdvancerMan, Stepavly, unreal.eugene, cannor147 and geranazavr555!

Div. 1 and Div.2 editions are open and rated for everyone. As usual, the statements will be provided in English and in Russian. Register and enjoy the contests!

Good luck on the round
MikeMirzayanov

UPD 1: The scoring:

  • D1: 500-1000-1250-2000-2250-3000
  • D2: 500-1000-1500-1500-2000-2500

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello,

Initially, the problem 1255B - Fridge Lockers was with no constraint $$$m \le n$$$ (just $$$m \le 2000$$$). Almost all participants (and me) invented wrong solution like: "make a cycle plus take the cheapest edge $$$m-n$$$ times". The counter-example is $$$n=5$$$, $$$m=6$$$ and prices are $$$3, 4, 1, 4, 5$$$. Look into the picture:

It was really unexpected for my intuition (and, of course, failed a proof).

Do you know the solution for this case?

Full text and comments »

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

By MikeMirzayanov, 5 years ago, translation, In English

Hello!

ICPC Southern and Volga Russian Regional Contest (Northern Eurasia) 2019 has ended on October 15. There were 76 teams onsite in Saratov, most of them were invited because of their result on the qualification stage.

On Oct/27/2019 12:35 (Moscow time) will start online-mirror 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred).

In this contest I play a role of Cheif Judge and the jury teams consists of ex-participants of ICPC from Saratov and jury members from other cities. Many thanks to all of them! I hope you will like the problems!

I invite ICPC teams and individual participants of Codeforces competitions to take part! Sure, the contest will be unrated.

MikeMirzayanov

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello!

Codeforces supports a wide range of languages. Just yesterday I supported Java 11.

On the other hand, my website is not only just open public rounds and trainings, but also an advanced system of groups, custom domains and mashups. This ecosystem makes it possible to conduct private trainings, local contests/olympiads, provides the work of computer science clubs, and so on.

Sometimes you ask me to somehow limit the languages that can be used in a particular contest. For example, an official competition is held that does not support Rust. Or this contest is a practical session specifically for classes in Python.

Now you can configure allowed programming languages (more precisely, their groups) for your mashups and private trainings. Thanks for the help to geranazavr555 who helped to realize this opportunity!

Here are some screenshots of how it looks in action.


Edit a contest settings to specify the list of allowed languages.



You can choose program languages groups your contest supports.

Hope you enjoy the feature,
MikeMirzayanov

Full text and comments »

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

By MikeMirzayanov, 5 years ago, translation, In English

Hi Codeforces!

Unfortunately, ill-wishers thwarted the round by making DDOS on our infrastructure. Neither the coordinator nor the writers of the round are subjects to blame for the failure. Please do not downvote the announcement of the round. I think that this situation is an additional reason to support the writers. They worked hard and prepared good problems!

Apparently, such an attack should be regarded as a symptom of the fact that Codeforces outgrew the youth phase and entered serious adult life. Of course, we will respond with adequate measures to protect ourselves from such incidents. Fortunately, for almost 10 years of work, a large community has formed around those who care about Codeforces. We are not worried about possible additional expenses or efforts. We can do this. The rounds must go on.

MikeMirzayanov

UPD 1: All three of today's rounds will be unrated.

UPD 2: Hooray! Today we've survived another DDOS attack. The round was not perfect, but it was not ruined!

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello.

It is not an official announcement of the events. Just information: The contest on Sep/22/2019 12:05 (Moscow time) will be only for onsite finalists. The mirror round will be the next day on Sep/23/2019 17:05 (Moscow time).

Hope to see many participants. Guess, who are the main writers of the Final?

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello Codeforces!

I hope you enjoyed the problems. I forgot to mention the contribution of testers to the preparation of problems in the round announcement. I apologize and correct myself. Many thanks to the testers: elizarov, ashmelev, KAN, arsijo, adedalic and Roms. Also many thanks to my co-authors: 300iq and geranazavr555. Special thanks to cannor147 who helped with translations.

1211A - Three Problems

Problem writer: MikeMirzayanov

Tutorial

1211B - Traveling Around the Golden Ring of Berland

Problem writer: MikeMirzayanov

Tutorial

1211C - Ice Cream

Problem writers: MikeMirzayanov, geranazavr555

Tutorial

1211D - Teams

Problem writer: MikeMirzayanov

Tutorial

1211E - Double Permutation Inc.

Problem writers: MikeMirzayanov, geranazavr555

Tutorial

1211F - kotlinkotlinkotlinkotlin...

Problem writer: MikeMirzayanov

Tutorial

1211G - King's Path

Problem writer: MikeMirzayanov

Tutorial

1211H - Road Repair in Treeland

Problem writer: MikeMirzayanov

Tutorial

1211I - Unusual Graph

Problem writer: 300iq

Tutorial

Full text and comments »

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

By MikeMirzayanov, 5 years ago, In English

Hello!

We are very pleased to cooperate with XTX Markets, thanks to whom we are able to hold the Global rounds. Four of the six of them are already passed and here are the current results.

In short, XTX Markets is a leading quantitative-driven electronic market maker Launched in 2015, XTX Markets has rapidly become the number 1 FX spot liquidity provider by volumes globally, surging ahead of global banks.

Thanks for supporting our community!

We are happy to announce that XTX recently launched the XTX Markets Global Forecasting Challenge, powered by Correlation One.

The XTX Markets Global Forecasting Challenge is an online competition for aspiring quantitative professionals, where contestants are tasked to develop a predictive model based on training data provided by XTX.

Competition highlights include:

  • Over $100,000 in total cash prizes.
  • $7,500 for the best submission from a participant aged under-25 (as of 1st July 2019).
  • Exciting job opportunities in London.
  • Opportunity to compete against the best quantitative minds from around the world.

The competition is open to all data-minded contestants from 1st of July to 30th of September, 2019.

To get started, please sign up below.

APPLY HERE→

We hope you'd be interested!

Full text and comments »

Tags xtx
  • Vote: I like it
  • +134
  • Vote: I do not like it