MikeMirzayanov's blog

By MikeMirzayanov, 13 days ago, translation, In English,


As an allowed language on Codeforces and Polygon C++17 has been added. The compiler we use is 32-bit mingw64 version 7.2.0 (later will be updated when new versions are released). We are using a patch from halyavin to speed up I/O when using scanf/printf (for more details, read here). The exact used distribution can be installed on Windows from our package manager called PBOX using the link http://pbox.me/packages/mingw-w64-7

The exact compilation command line is:

g++.exe -static -DONLINE_JUDGE -Wl,--stack=268435456 -O2 -std=c++17 -o %name%.exe %1 2>compilation.log

Wish you successful solutions in C++17,

Read more »

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

By MikeMirzayanov, history, 4 weeks ago, In Russian,

Добрый день!

Прямо сейчас идет первый тур олимпиады. Посылаю участникам лучи интеллекта и внимательности! Надеюсь, и задачи и результаты вас порадуют.

Предлагаю в комментариях обсудить задачи (когда тур завершится во всех регионах) и результаты.

Наверное, в этом году большинство регионов проводит на Яндекс.Контесте. Интересно, многие ли регионы проводят самостоятельно?

Желаю всё решить, успеть оттестировать и получить максимальные баллы!

Read more »

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

By MikeMirzayanov, history, 7 weeks ago, In English,


After the Educational Codeforces Round 35 (рейтинговый для Див. 2) the system marked some solutions as plagiarism by mistake. It counts submitted twice solutions of the same participant as a plagiarism. Sorry about it. Day ago I rolled back punishment and judged such submissions as normal. Now I'm fixing the ratings. In 2-3 hours some rating changes will be reverted and applied back. The same with NY magic. Temporarily magic is unavailable now. It will be back soon!

The changes will affect ~10 people.


Read more »

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

By MikeMirzayanov, 7 weeks ago, translation, In English,

Happy New Year, Codeforces!

I hasten to wish the whole community (and including me) correct programs, sudden insights, beautiful ideas and interesting problems!

I hope that you have met the new year at least as fun as I am. Have you had enough sleep after New Year's Eve? This year, the traditional post summarizing the past year, I sat down to write only on January 1, 2018. I hope that I will not have to sum up the whole year.

This post is important to me, since it draws a line to all the work done by the Codeforces team and the entire community in 2017. Many thanks to the team: all of the achievements listed below are the result of joint efforts. We did an excellent job! The community must know its heroes. In 2017, MikeMirzayanov, KAN (problem coordinator), gritukan (second problem coordinator), netman (ex-second problem coordinator), kuviman (developer), fcspartakm (developer), SladeThe (developer) and gKseni (manager). Great contributions were provided by the students of the Saratov University: BledDest, PikMike, Vovuh, and Perforator — educational rounds, trainings in Codeforces::Gym and help in the development. I radiate the rays of gratitude to problem writers and testers: you create interesting content for many thousands of programmers from all over the world. Many thanks to all those who helped with the special projects, wrote interesting posts and good comments. All together, we were able to make Codeforces better!

So, let's move on to the results. It seems to me, this year again has something to brag about.

Read more »

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

By MikeMirzayanov, 2 months ago, translation, 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 old handle would automatically redirect to the actual profile.

This year we have an improvement. If you took part in at least 10 rounds you can request handle of an inactive participant. It means that the participant should have a period of activity on Codeforces of at most 30 days, this period should be in 2012 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. If you can’t change handle to others, 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

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

Read more »

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

By MikeMirzayanov, 2 months ago, In Russian,

Привет, Codeforces!

Перед полуфиналом ACM-ICPC у меня возникла неожиданная мысль воспользоваться моментом и взять интервью у самого успешного тренера в истории чемпионатов по программированию (ACM-ICPC) Андрея andrewzta Станкевича. Было интересно попробовать и себя в новом качестве. Мне кажется, Андрей рассказал много интересного. Спасибо!

Если вам было интересно, то оставляйте в комментариях ваши предложения с кем было бы интересно побеседовать в следующие выпуски. Приятного просмотра.

Спасибо Андрею за интересный рассказ и ИТМО за предоставленную возможность и помощь.

Read more »

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

By MikeMirzayanov, history, 2 months ago, translation, In English,

Hello, Codeforces!

I want to test the system before the rated rounds based on Technocup stage, to be sure that everything works as expected.

I invite you to take part in Testing Round #14 (Unrated). It will start soon, on December, 22, 11:05:00 (UTC). It will be unofficial unrated round. The duration is 90 minutes.

Pretests are unusually weak to trigger more hack.

Thank you,

UPD: Thank you for participation. I didn't notice any bugs. It seems we are ready for new rounds!

Read more »

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

By MikeMirzayanov, history, 3 months ago, translation, In English,

Hi, Codeforces!

This is not an ordinary post from me. This is not an announcement of new features or a championship, but I'm no less enthusiastic.

I am glad to inform you that from January 29 to February 16, 2018 I will be giving the course "Advanced Algorithms and Data Structures" in Harbour.Space University (Barcelona, Spain). The course will be in English. The students of this course will not only be students of Harbour.Space, but is open to all! Who wants to join?

This course isn't just for Harbour.Space students, it is also open to Codeforces participants, who will be offered a special price, 1000 EUR. The cost does not include travel or accommodation.

Register for the Course →

In my plans there is a detailed story about some algorithms and data structures, a lot of practical exercises and emphasis not only on the correctness, but also the beauty and structure of the code. My goal is to make useful and interesting classes for both those who want to understand the fundamental CS, and for those interested in programming competitions. And of course, we will have the opportunity to meet and talk. I'm happy to share stories about the history of Codeforces and development plans.

The course will consist of three weeks of training, 5 training days in each week. The program includes daily lectures and practical exercises. It will not be boring for sure!

Here is the expected course outline:

Week Day Topics
1 1 Heap data structure, heap properties and operations. HeapSort. Priority queue. Other heap applications. Mergeable heaps: binomial heap, pairing heap, randomised meldable heap.
1 2 Fenwick tree. Description and motivation. Implementation of Fenwick tree. Generalisation for higher dimensions. Skip list data structure. Implementation details. Indexable skiplist.
1 3 Segment trees. Top-down implementation. Bottom-up implementation. Segment trees applications. Persistent data structures. Persistent stack, persistent array. Persistent Fenwick and segment trees.
1 4 Cartesian trees, treap data structure. Merge and split operations. Treap implementation in detail. Treap applications.
1 5 Treaps with implicit keys. Ropes. Segment reverse operation. Examples of problems.
2 6 Introduction to strings. String searching (matching) problem. Pattern pre processings. Z-function, prefix-function. Their applications. Knuth–Morris–Pratt algorithm. Matching finite state machine.
2 7 Multiple pattern matching. Trie data structure. Aho-Corasick algorithm. Implementation details. Dynamic programming on a trie.
2 8 String hashing. Rabin-Karp algorithm. Fast substrings comparison with hashes. Suffix array. LCP array. Efficient construction algorithm. Applications.
2 9 Suffix tree. Ukkonen's algorithm. Suffix tree construction from LCP array. Suffix tree applications.
2 10 Suffix automaton. Size bounds. Linear Algorithm. Using suffix automata as an index for approximate string searches.
3 11 Introduction to automata theory. Formal languages. Context-free languages. Formal grammars. Context-free grammars. NFA, DFA, convert NFA to DFA. Build automaton by regular expression.
3 12 LL(1) parser. Arithmetic expressions parsing. Shunting-yard algorithm. Simplified Pascal language parsing and interpretation.
3 13 Algorithms for traversing a graph. DFS. Properties. DFS search tree. Edges classification. Linear bridge-finding algorithm. Linear articulation points finding algorithm. Strongly connected components. Tarjan's strongly connected components algorithm.
3 14 Tree problems. Bottom-up approach. LCA problem. LCA algorithms.
3 15 Bipartite graphs. König’s criterion. Problems: maximum matching, minimum edge cover, maximum independent vertex set, minimum vertex cover. Connection of the problems. Berge's lemma. Kuhn algorithm. Kuhn algorithm properties. Minimal vertex cover by maximum matching. Cover DAG by minimal number of paths.

Harbor.Space University is located in Barcelona (Spain). For users of Codeforces, Harbour.Space is known for active participation in the life of the community of sports programming (partnership with Codeforces in the framework of Educational Rounds). The main activity of the university is teaching (there are bachelor's and master's programs) in the following areas:

  • Maths as a Second Language
  • Computer Science
  • Data Science
  • Cyber Security
  • Interaction Design
  • Digital Marketing
  • High Tech Entrepreneurship
  • FinTech
  • BioTech
  • Aerospace Engineering
  • SuperCities UrbanTech

Register for my upcoming course here.

Mike Mirzayanov

Read more »

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

By MikeMirzayanov, 3 months ago, translation, In English,


I am pleased to report that two rounds of Codeforces have gone quite well in terms of the work of Codeforces, I am very glad about it. These days nights I spent in a profiler, fixing the code, researching the settings of MariaDB.

In addition, I managed to allocate several hours on Sunday (to be honest, until Monday morning) to finish the long-planned innovation.

Meet, diagnostics of solutions in C++!

Many Codeforces visitors are already tired of the questions of less experienced participants: "Why does my solution not work on some test on the Codeforces servers, if I locally launch it and it works correctly? You have the wrong compiler/servers!" In 99% of cases this is an example of undefined behavior in a program. In other words, the program contains mistakes that, due to a number of circumstances, are not reproduced at local launch, but are reproduced at launch on the Codeforces servers.

Sometimes, it's not easy to notice such a mistake. A small overflow of the array can lead to an incorrect answer on the test and to an runtime error of the program.

In g++/clang++ there is a remarkable tools called sanitizers. It's such a way to compile a program in a special mode so that when it's working, it will check it for undefined behavior (and some other errors) and, if any, print them to stderr. The drmemory (it is similar to valgrind, but for Windows) has similar functionality, which starts the program in a special mode to detect errors. With such two diagnostic launches, the performance of the program suffers tremendously (the program is executed 5-100 times slower and requires more memory), but often it's worth it.

Now automatic diagnostics in some cases will prevent a question like "Why does not work ???", indicating the error or its appearance!

If your solution:

  • written in C++,
  • finishes with a verdict "wrong answer" or "runtime error"
  • on this test worked extremely quickly and consumed a little memory,

then it will be restarted using special diagnostic compilers (clang ++ with sanitizers and g++ with drmemory). If an execution error occurs during this launch, the diagnostics log will be displayed in the test details in the "diagnostics" section. Of course, this entry will contain a technical report in English, but often it will indicate to you the error of the program. Often it contains the cause of the mistake and even the source code line. If the diagnostics are not displayed, then at least one condition above is not fulfilled or the diagnostics has not detected any errors.

Example of the diagnostics:  here it is written that there was an array out of range error in the line 78.

Thus, the diagnostics will sometimes help you to find a mistake like "out of bounds error", "signed numbers overflow", "uninitialized variable", etc. Carefully read the diagnosis and do not make such mistakes in the future!

I wish your programs did not fail. I hope the innovation will be useful!

There are big plans as it is useful to apply such diagnostics. Do not go far, wait for news, soon there will be more innovations!

P.S. Also, diagnostic compilers are simply available for use. For example, you can use them on the "Custom invocation" tab. I recall that the program runs many times slower and consumes more memory in diagnostic mode.

Read more »

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

By MikeMirzayanov, 3 months ago, In English,

The contest is declared unrated. For Technocup, results of this round will be counted for elimination. Also, we plan to hold one more (the fourth) elimination round to compensate this failure. Stay tuned for updates. We apologize for the situation, hope you enjoyed the problems.


If you are upset about today round, I understand you. Please, downvote this blog instead of the official announcement. The coordinator, writers and tester did a great job making the round. But technical issues erased their effort.

The chain of technical issues leaded to so bad work of the website. This week our server with Polygon system had broken and Mail.Ru quckly replaced it with another one. I forgot to reconfigure Polygon on the new server and it leaded to 502 during the contest. Also today one Codeforces server stopped to respond and I do not know the reason yet (it is first time issue with this server).

Right now I feel myself very upset and thinking about the way to change an approach to have enough time to setup, monitor and develop the system.

Sorry again about it.

Read more »

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

By MikeMirzayanov, 4 months ago, translation, In English,


ACM-ICPC Southern Subregional Contest (NEERC/Northern Eurasia) 2017 has ended on October 18. There were 73 teams onsite in Saratov, most of them were invited because of their result on the qualification stage.

On Saturday, October 21, 08:05 (UTC) will start online-mirror 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred).

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


Read more »

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

By MikeMirzayanov, 4 months ago, In English,

Codeforces Round 440 will start on October 15 (Sunday), 08:05 (UTC). It will be based on Technocup 2018 Elimination Round 2. So, if you are a Russian-speaking high-school student, please take part in the Technocup 2018.

Codeforces Round 440 is open and rated for everyone.

Wish you good luck and bugless code.

Editorial is posted.

Congratulations to winners!

Technocup official round:

  1. Horoshi_chelovek
  2. scanhex
  3. Krisha
  4. ZinchenkoDanil
  5. neckbosov

Div. 1:

  1. khadaev
  2. Errichto
  3. eddy1021
  4. FizzyDavid
  5. fateice

Div. 2:

  1. wdmmsyf
  2. oscillation
  3. pulkit.kapoor
  4. oscar172772
  5. OMS

Read more »

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

By MikeMirzayanov, 5 months ago, translation, In English,

Hello, Codeforces!

I'd like to invite you to Codeforces Round #436 (Div. 2). It'll be held on Monday, September 25 on 10:35 UTC and as usual Div. 1 participants can join out of competition. Note that round starts in the unusual time!

This round is held on the tasks of the school stage All-Russian Olympiad of Informatics 2017/2018 year in city Saratov. They were prepared by Perforator, MikeMirzayanov and fcspartakm. Many thanks to the testers: sdya и BledDest, and coordinators KAN and gritukan.

It will be a little unusual round — you will be given six problems and two hours to solve them.

Good luck and have fun!

Congratulations to winners!

Div. 2:

  1. ZJT_NOI2017_AK
  2. AngusRitossa
  3. Jha_The_ME_Coder
  4. cxh007
  5. Alexvsalex

Div. 1:

  1. Shik
  2. dreamoon
  3. black_horse2014
  4. orbitingflea
  5. NiroBC

Analysis is here.

Read more »

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

By MikeMirzayanov, history, 5 months ago, In English,

Welcome to 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred).

The contest was held yesterday on September 17. Mostly it is focused on the participants of the Div 2.

Note that you can print PDF (English or Russian) with the statements. It will be available on the contest dashboard page on the right.

Good luck!

Read more »

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

By MikeMirzayanov, 5 months ago, translation, In English,

I apologize to the participants of the round. It happened that I accidentally had run improper script and it rebooted the judging machines. It is very insulting, because most problems were proposed by me and I hoped to host an interesting competition for you. A lot of effort was spent on preparation. Apparently, the mistake of just such a human character happened for the first time. I really hope not to repeat it in the future.


Want problems? We have some!

Codeforces Round 434 will start on September 17 (Sunday), 13:05 (UTC). It will be based on Technocup 2018 Elimination Round 1. So, if you are a Russian-speaking high-school student, please take part in the Technocup 2018.

Many thanks to KAN, 0n25, Ne0n25, ifsmirnov, irkstepanov and white2302 for their help in round preparation. Some problem ideas are mine.

I hope you will like problems. There will be 6 problems in div. 2 and 5 problems in div. 1.

Wish you good luck and bugless code.

Read more »

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

By MikeMirzayanov, history, 5 months ago, In Russian,

Mail.Ru Group совместно с МФТИ, МГТУ им. Н. Э. Баумана и Codeforces в третий раз запускает Технокубок — совместную олимпиаду по программированию для школьников. В этом учебном году олимпиада вошла в перечень олимпиад школьников, повысив свой уровень до второго — круг учебных заведений, дающих льготы победителям и призерам, значительно расширился. Лучшие участники получат ценные призы от компании Apple.

Сразиться за звание самого талантливого молодого программиста приглашаются учащиеся средних образовательных учреждений 8 — 11 классов.

Победители и призеры олимпиады будут определены по результатам очного этапа, который будет проведен в Москве весной 2018 года на базе площадок МГТУ им. Н.Э.Баумана и МФТИ.

Read more »

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

By MikeMirzayanov, 6 months ago, In Russian,

Больше контестов хороших и разных! Вдохновившись рассказами MikhailRubinchik об успехах проведения квалификационных этапов в Восточном четвертьфинале NEERC, в этом году и Южный (саратовский) четвертьфинал объявляет о проведении квалификационного этапа. В октябре состоится 20-й юбилейный четвертьфинал в Саратове. Надеемся, что проводя квалификацию, мы сумеем дать возможность большему количеству команд попробовать себя в соревнованиях по программированию.

Для широкой аудитории 17-го сентября будет проведено онлайн-зеркало на Codeforces. Приглашаются все!

В этом году (сезон 2017-2018) Четвертьфинал ICPC Южного подрегиона NEERC будет содержать дополнительный квалификационный этап. Дата проведения — 17 сентября 2017 г. До 11 сентября необходимо зарегистрировать команду на сайте https://icpc.sgu.ru.

Зарегистрироваться →
Для команд Южного подрегиона NEERC

Приглашаются команды студентов/магистрантов/аспирантов из Астраханской, Белгородской, Волгоградской, Воронежской, Курской, Липецкой, Нижегородской, Пензенской, Ростовской, Самарской, Саратовской, Тамбовской, Ульяновской областей, Краснодарского, Ставропольского краёв, республик Адыгея, Дагестан, Кабардино-Балкария, Калмыкия, Карачаево-Черкесия, Чечня, Марий Эл, Мордовия, Северная Осетия, Татарстан, Чувашия. Команды должны состоять из трёх студентов/магистрантов/аспирантов (ниже смотрите формальные требования), представляющих один вуз. Участие в квалификационном этапе бесплатное. Оргвзнос не предусмотрен.

Этап будет одновременно проведен на нескольких площадках в ряде городов Южного подрегиона NEERC. Продолжительность квалификационного этапа 4 часа, язык условий — русский. Будет доступен перевод условий на английский язык.

Read more »

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

By MikeMirzayanov, 9 months ago, In English,

Hello, Codeforces!

I am pleased to announce the 2nd Hello Barcelona Programming Bootcamp in collaboration with Moscow Workshops ACM ICPC, which will be hosted by our partner Harbour.Space University together with Moscow Workshops ACM ICPC, ITMO University, Moscow Physics and Technology University, Saint Petersburg State University and Codeforces!

The boot camp will be held from September 27th to October 5th in Barcelona. This time it will be at the beautiful and technologically mind-bending Media-TIC building — the Smart Building of Tomorrow.

Media-TIC building — the Smart Building of Tomorrow

The world's greatest coaches will be attending: Andrew andrewzta Stankevich, Michael Endagorion Tikhomirov, Gleb GlebsHP Evstropov, Artem VArtem Vasilyev and other world renowned Russian coaches. As a coach, I will come too. The Chief Judge of the camp is Oleg snarknews Khristenko. Seriously, it will be a unique opportunity for teams around the world to learn from such well-known and successful coaches in the ACM-ICPC world.

Having visited the first Hello Barcelona programming Bootcamp in February, I left the event feeling inspired from the overall atmosphere. I am sure that all teams received an immense amount of knowledge and skills. As one of the coaches, all of the flattering reviews about the camp from the participants were pleasant for me to hear. I am very glad that these camps are becoming regular. Harbour.Space University and Moscow Workshops ACM ICPC have done a job worthy of admiration!

The Bootcamp will be split in two divisions:

  • Division A. Designed to prepare students to excel and win medals in the next ACM-ICPC World Finals.

  • Division B. Designed to help teams prepare for the next season of ACM-ICPC Regionals and international competitions. This is an appropriate introduction for teams and students new to the world of ACM ICPC and competitive programming competitions in general. The Division B curriculum features thematic lectures and contests.

The participation fee is unchanged: €1270 per person (cultural program, accommodation and half-board meals included).

Single participants and teams must register by July 1st, 2017 to receive the 15% off-Early Bird Discount, or the 20% off-Loyalty Discount, which is awarded to teams that participated in previous Moscow Workshops ACM ICPC boot camps.

Learn more about Barcelona ACM-ICPC Bootcamp

You can ask any questions by email: hello@harbour.space

Hope to meet you on the Bootcamp, Mike Mirzayanov

In order to experience the atmosphere of the event, I suggest you familiarize yourself with the photos and videos from the 1st Hello Barcelona programming Bootcamp in collaboration with Moscow Workshops ACM ICPC.

Read more »

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

By MikeMirzayanov, 9 months ago, In Russian,

Общая информация

Саратовский государственный университет в первой половине августа проводит международную летнюю студенческую школу по программированию. Продолжительность школы — десять дней, школа пройдет с 31-го июля по 10-е августа 2017 года.

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

Школа пройдет в живописном месте, на одной из саратовских баз отдыха на берегу Волги. Участники будут расселены в уютных номерах по 2-4 человека и обеспечены трехразовым питанием. На территории базы имеется собственный пляж и спортивные площадки.

В программе школы запланировано 10 рабочих дней, включающих ежедневные пятичасовые тренировки, разборы задач, дорешивания. Будет прочитана серия лекций. Учебная программа рассчитана на студентов, которые хотят достичь значительных успехов на соревнованиях по программированию.

Read more »

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

By MikeMirzayanov, 9 months ago, translation, In English,

ACM-ICPC World Finals 2017 will begin on May 24, 2017 at 15:00 (UTC). This event is the main event of the year in the world of sports programming!

This year ICPC Regional participation included 46,381 of the finest students and faculty in computing disciplines from 2,948 universities in 103 countries on six continents. A record 50,145 students and 5,073 coaches competed in ICPC and ICPC-assisted competitions this year, setting new records in participation.

Codeforces wishes the teams to show a vivid and interesting contest contest. We wish to find beautiful solutions, write without bugs and enjoy many accepted problems!


ACM ICPC World Finals 2017 English Broadcast:
ACM ICPC World Finals 2017 Indian Broadcast:
ACM ICPC World Finals 2017 Chinese Broadcast:
ACM ICPC World Finals 2017 Arabic Broadcast:
Broadcast from legends: Petr, tourist, Endagorion:

Read more »

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

By MikeMirzayanov, 9 months ago, translation, In English,

Hello, Codeforces!

The ACM-ICPC World Finals 2017 event is running now. Tomorrow will be the main contest. During these days the directorate of ACM-ICPC shared some news.

  • Let me remind you that this season (2016-2017) is last, when the general sponsor of the championship is IBM. For 20 years, IBM has supported ACM-ICPC, investing millions of dollars annually. Thank you, IBM! At the moment, the model is actively being worked out, when there will be not one general sponsor, but there will be a fund in which several companies will participate. At the opening ceremony the Sport Programming Foundation was mentioned. I believe this Foundation will be the main one for the future seasons of the championship. However, these are not yet close plans.

    It was announced that the next three years the general sponsor of ACM-ICPC will be JetBrains! This is amazing news. Particularly pleased that this is actually a Russian company, and its executive director Maxim Shafirov coached the team of St. Petersburg State University, which became the world champion in 2000! I'm sure that the wonderful development environment from JetBrains in the future finals of the championship will await us as a pleasant bonus.

  • There is a reform of the qualifying stages of the championship. For example, now Rissian+ regional contest (NEERC) is not part of the European Regionals, but is a separate league of the Northern Eurasia. In general, eight leagues (read, super-regions) were singled out: Europe, Northern Eurasia, North America, Latin and South America, two leagues in Asia, Africa and probably Australia and Oceania. It is planned that each league will have its own separate finals with medals and the top 12 teams from each league will receive a ticket to the World Finals. While these are still distant plans, but the first steps have already been taken. Discusses its quota on the number of participations in the league finals (3 times).

  • Unfortunately, this year a significant part of the teams did not receive a visa at all (5 teams) and a dozen more could not arrive completely because of the visa problems of one of the participants. Saratov State University, apparently, is among them. It was announced the decision to invite to the next Wold Finals without any selections and quota accounting for 5 teams that could not come this year. In addition, it is proposed to give a +1 year to participate (without taking into account any other requirements) to all teams that could not arrive completely.

  • The next Finals will be held in Beijing, and a year later — in Kochi (India).

Such news.

Read more »

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

By MikeMirzayanov, 9 months ago, In English,


I'm happy to visit Rapid City and meet so many bright contestants here!

I have Codeforces laptop stickers with me and I'll be glad to give them as small gifts to participants of the World Finals. You can find me (I do not have many stickers, be quick) to get gifts. My friend collects coins, so I'll be glad to receive a coin from your country as a souvenir.

See you. And good luck on the contest!


UPD Still have few stickers. You have a chance!

Read more »

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

By MikeMirzayanov, 9 months ago, translation, In English,

Hello, Codeforces!

I'd like to invite you to join in Playrix Codescapes Cup for the both divisions that will be held on May 11 at 18:35 MSK. The round is rated and open for everyone.

Problems are prepared by KAN, Al.Cash, MikeMirzayanov and fcspartakm. Huge thanks to Playrix company for making this round possible. Hope you enjoy the round!

Playrix is one of the leading mobile games development companies in the world. Its distributed team consists of 450 professionals from around the world. The company has released three successful mobile free-to-play games – Township, Fishdom and Gardenscapes. All of the projects have consistently been among the Top 50 Grossing Apps for iOS and Google Play since their release.In 2016, Facebook named Gardenscapes game of the year.

Company is looking for Russian-speaking C++ developers.

Prizes from the Playrix company:

  • Top 1: iPadPro 9,7 + PowerBank + T-shirt with logo
  • Top 2-5: PowerBank + T-shirt with logo
  • Top 6-50: T-shirt with logo
  • (New!) Random 5 participants (not from top-50, submitted at least once): T-shirt with logo

Congratulations to the winners!

  1. tourist
  2. LHiC
  3. subscriber
  4. W4yneb0t
  5. enot110

The problem analysis is published.

Read more »

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

By MikeMirzayanov, 10 months ago, translation, In English,


Are you missing something new? I have something to please you.

Regularly I host some events — Olympiads, onsites, and eventually, examinations and tests for students. On the one hand, Codeforces already offers a unique functionality — groups, the integration with Polygon, the possibility of choosing tasks from the archive and so on. But it doesn’t enough!

Domains for groups

Here is an example of such group. It is open for all — join it and look: http://example.contest.codeforces.com


Now when you are editing a group, you can specify its subdomain (from 3 to 20 alphanumeric characters, starts with a letter). When you specify the domain, the group will be accessible by a link http://yourgroupdomain.contest.codeforces.com. According to this link, the following is correct:

  • Nothing extra will be displayed — the site contains only the information about competitions and blogs of your group and nothing else.
  • All you need to display — is an HTTP access to If you host the official contest, important coaching or examination — block all the rest of the Internet, except for this IP-address.
  • Today such groups can only contain private competitions and trainings. For example, you can make your mashup and set it up as you need. Maybe, later we will make something with this restriction, but for now — it is like this.
Permitted subnets for the domain

To be sure that extra people will not click on your link http://yourgroupdomain.contest.codeforces.com, you can block the access to it by IP. Specify the exact IP or subnet address. For example,;

The language of the interface of the domain

Probably, when you host the event, only the English (or only Russian) interface is enough for the participant. Use this setting to select the desired behavior.

Header html

You can change the site header at http://yourgroupdomain.contest.codeforces.com, so that there will be not the familiar logo of Codeforces, but the logo or name of your event. For example, when I host the inter-university Olympiad in Saratov, I set it to <h3>Interuniversity Olympiad on programming 2017 (Saratov)</h3>.

Users of the domain (sidebar)

It is very likely that if you hold an Olympiad or something similar, participants may not have the Codeforces account, the information about participants comes from a separate registration, and you want to see usual names in the interface, such as ‘John Doe, Berliandsky SU, 3 Course’, rather than the participant’s handle.

You can add synthetic users to your group with a domain (using these accounts, you can only log the group through the domain). Use the special function “Users of the domain”. Each line corresponds to one user and must be written in the format: contest ids (separated by commas) | Handle | Password | Name. Here's an example of this setting for the domain example.contest.codeforces.com:

213380 | u01 | 371111 | Petr Korotkevich
213380 | u02 | 627492 | Gennady Soejima
213380 | u03 | 491591 | Makoto Knuth
213380 | u04 | 581711 | Donald Cormen
213380 | u05 | 057259 | Thomas Mitrichev

Yes, you can feel like Peter Korotkevich, log on http://example.contest.codeforces.com, and use the login u01 and the password 371111.

Privacy settings

You have a possibility to set all as you wish. For example, to maximally block the access to the group (only by the domain, do not allow extra users), make the closed’ group, and the policy of registering of its membersonly by invitation`. In this case, only domain users (see the point above) and users invited to the group will be able to access the domain address.

For private contests you can set additional settings:

  • Allow practice — whether it is possible to solve problems after the official termination in an informal mode of upsolving.
  • Allow virtual participation — whether it is possible to participate virtually after the official termination (or whenever you want, if there is no start time).
  • Allow out of competition participation — it is reserved for out of competition participation, while only the users of the domain can be registered as out of competition (for the right users, add the symbol 'o' after the contest id, for example “213380o | u01 | 371111 | Petr Korotkevich”).
  • Allow self-registration — whether it is possible for participant to make a self-registration (if no — register him).
  • Allow unregistered users to observe the competition — whether it is possible for the participant of the group who is not registered to a contest enter the contest and see the problems, status, standings and other details.
  • Turn on common status — whether it is possible for participants to see the information about other participants’ submissions, or the information about their own attempts is the only available.
  • The duration of freezing and unfreeze time. Be careful during transfer of the contest — unfreeze time must be changed independently.
  • The policy for showing tests. Here are possible options: "do not show at all", "show failed tests of own solutions", "show all tests completely".
  • The policy of showing other people's attempts. Here are possible options: "do not show at all", "show to participants who solved the problem," "show to everyone."

Read more »

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

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

April 26, 15:35 (UTC) the second Wild Card Round of VK Cup 2017 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 2017 - 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!

Read more »

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