MikeMirzayanov's blog

By MikeMirzayanov, 11 hours ago, In English

Goodbye, 2024. Hello, 2025!

Dear Santa Claus,
Please make 2025 a happy year—not just for me, but for everyone. We all need this.

Hello, 2025!

And of course, we have our traditional gifts!

Change Handle Feature

Hurry! Until the 10th of January, you can change your handle (but only once)! Note that you can roll back the changes or request another handle change only after a year. Choose wisely!

You can change your handle to a new one that hasn’t been used by anyone else, or to one that you’ve previously used. Links to your old profile will automatically redirect to your updated profile.

Again this year, if you’ve participated in at least 10 rounds, you can request the handle of an inactive participant. This means the participant must have had a period of activity on Codeforces lasting at most 180 days, and this activity must have occurred in 2020 or earlier. The inactive participant must not have posted comments, messages, or similar content, and they must not have participated in more than 2 contests. In such cases, the handle will be automatically renamed, and the original owner will be notified via email. If the original user requests their handle back, we will roll back the change and restore your previous handle.

If you’re unable to change your handle, it means some of the requirements have not been met. Please do not ask me to intervene manually. I especially dislike requests such as, "This is my second account; I took an interesting handle myself." I'm not Santa Claus!

Speaking of handles, I always reminisce about one particular story. Once, a user sent me this 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 your profile settings. Happy New Year!

Full text and comments »

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

By MikeMirzayanov, 31 hour(s) ago, In English

Hello, Codeforces!

I'm excited to invite you to participate in MaraTON Challenge 1, our first marathon in collaboration with the TON Foundation. It's great to see our partnership with TON thriving and moving forward.

Take part in the challenge →

The challenge is brought to you by TON blockchain engineers, some of whom are community members. Special thanks to SpyCheese for preparing the problem!

The competition will run for three weeks, starting on Dec/23/2024 16:35 (Moscow time). Get ready to dive deep into the technical details of the blockchain world — it's worth it.

Winners will receive amazing prizes:

  • 1st place: 8,000 USDT
  • 2nd place: 5,000 USDT
  • 3rd place: 3,000 USDT
  • 4th–10th places: 2,000 USDT each
  • 11th–20th places: 1,000 USDT each

Additionally, there will be bonus prizes for the leaders throughout the competition. Starting December 25th and continuing daily until January 13th at 12:35 (UTC), we will award bonus prizes to the top five leaders of the day:

  • 1st place: 250 USDT
  • 2nd place: 125 USDT
  • 3rd place: 75 USDT
  • 4th–5th places: 50 USDT each

Please note that these prizes will be distributed after full testing of all submissions made by 12:35 (UTC) on the respective day.

Join the competition — it's truly something new and exciting on Codeforces!

* All payments will be made to a TON wallet. All payouts (including those for daily leadership) will be issued after the final results are announced.
* In case of ties in the leaderboard, the participant who first achieved the score will rank higher for prize distribution.
* Please note that this is an individual competition. Collaboration, discussing ideas, or using shared code is prohibited. Please adhere to the rules regarding the use of third-party code.

Full text and comments »

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

By MikeMirzayanov, 3 months ago, In English

Hi everyone!

At the ICPC World Finals in Astana, there's an Alumni Zone, and I've been invited there on September 18th from 16:30 to 17:00 (Astana time/UTC+5).

I suggest we hold a push-up challenge during this time! I'm ready to participate and would be happy to see other participants. Let's do some push-ups! Are you ready?

I'll give a Codeforces t-shirt to the winner. If this isn't your kind of sport and you're only into competitive programming, feel free to drop by to cheer and have fun.

See you there!

UPD 1: Thanks to 1.6 for the idea! I'm planning to stream (instagram live) from my Instagram account: https://www.instagram.com/mikemirzayanov/

UPD 2: People came up to me and asked about the format. I think we'll do it this way: we'll do sets of 25 push-ups. Gradually, people will start dropping out. Whoever does the most total push-ups will be the winner! So to speak, they'll hold the title of World Push-up Champion according to the ICPC World Finals version :-)

UPD 3: Instagram Live: https://www.instagram.com/reel/DADroPMMkwY/?igsh=MTlwM3N1aDlmYnZx

UPD 4: Thanks for taking part! Good luck on the ICPC Finals!

Full text and comments »

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

By MikeMirzayanov, history, 3 months ago, In English

It seems that neural networks are working technological wonders. Not long ago, they struggled with even the simplest tasks in our competitions, but now they are reaching new heights that cannot be overlooked.

There is reason to believe that progress will continue, and we can expect further advancements in neural networks within the realm of programming competitions.

For this reason, we are explicitly limiting the use of AI-based systems (such as various models like GPT, Gemini, Gemma, Llama, Claude, and others) for solving programming problems.

However, we recognize that AI can be a valuable tool for learning and coding assistance, so we aim to establish clear boundaries for its use.

Application of this Rule:
This rule applies strictly to in-contest participation. This includes both registered contestants and out-of-competition participants in any rated Codeforces round. If a round is unrated and this is explicitly stated in the round announcement or rules, the rule will also apply. Outside of such contests, AI tools may be used freely for practice, learning, or non-competitive problem-solving.

Permitted AI Use:

  • Translation of Problem Statements: You may use AI-based systems to translate problem statements, but you must ensure that the system does not interpret or summarize the statement. Only direct translations are allowed.
  • Code Completion Tools (e.g., Copilot): AI-based code completion systems may be used, but only for syntax and minor coding suggestions. Using them to generate the core logic or algorithms for solving problems is not permitted.

Prohibited AI Use:

  • You may not input the problem statement, its summary, any excerpt, or a sub-problem into an AI-based system to receive ready-made code or natural language descriptions of the solution.

  • You are forbidden from using AI to diagnose or resolve errors based on system feedback (e.g., after receiving a rejected verdict like "Runtime error on test 1" or similar, you are prohibited from asking AI-based systems to help you fix the issue). The use of AI tools that assist with problem understanding, logic creation, or decision-making in a way that substitutes your own reasoning is strictly disallowed.

Guidelines for Proper Use:

  • Using AI to generate simple boilerplate code (e.g., input/output functions) is allowed.
  • Relying on AI to generate algorithmic logic or the key solution is strictly prohibited.
  • If you're unsure whether a particular AI use violates the rules, please consult the competition organizers.

Cheating Detection:
This rule allows us to continue identifying cheating incidents as we did before the AI era. If two contestants’ codes match and the matched code does not exist publicly on the internet prior to the competition round, this will be considered evidence of cheating. This method ensures that AI tools are not used inappropriately to bypass individual effort and maintains the integrity of fair competition.

We will closely monitor the development of AI technologies and will adapt the rules as necessary while balancing fair competition and the benefits of AI-assisted learning.

Full text and comments »

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

By MikeMirzayanov, history, 4 months ago, In English

Hello,

As you may have already noticed, tourist has reached the symbolic milestone of 4000 rating points. This is the first time in the history of competitive programming. I, personally, and the entire Codeforces team, congratulate Gennady tourist Korotkevich on this incredible achievement!

Right now, we have assigned a new rank “Tourist” to the 4+ rating. This highlights the uniqueness of the moment!

However, in the future, I would like to change this name to something a bit more neutral (or leave it Tourist?). Would you help me with this?

I’d appreciate your cool suggestions in the comments!

Here are a few options from me. Please, vote:

  • Epic Grandmaster
  • Ultimate Grandmaster
  • Godlike Grandmaster
  • Tourist
  • 4K Grandmaster
  • Grandmaster 4K
  • Legendary Grandmaster 4K
  • Joke option: Ultra HD Grandmaster
  • from Tlatoani: Champion

Feel free to propose your own options and add (likes:n) (use square brackets instead of round), where n is an integer starting from 1, to allow for voting.

Full text and comments »

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

By MikeMirzayanov, history, 4 months ago, In English

Hello!

We are starting to test the long-awaited feature of non-rated registration for rounds. Here’s the plan: we will first test this feature in Testing Round 19 (Div. 3). Then, we will apply this innovation for ICPC-like rounds (Div. 4 Rounds, Div. 3 Rounds, Educational Rounds). After we have tested the feature in ICPC-like rounds, we will start using it in other types of rounds as well.

Here’s how the feature works:

  • When you register for a round (if it is rated for you), you can choose non-rated registration if you do not expect to perform at your best (for example, if you might be interrupted during the round).
  • You can change your registration type (rated or non-rated) BEFORE THE ROUND STARTS. Once the round starts, you cannot change your registration type.
  • If you register for a round after it has started, you will automatically be registered as rated (if the round is rated for you). In other words, you will not be given the option to register as non-rated.
  • After the round, the rating will be updated only for those who participated in the round and had a rated (regular) registration.

During the round, you will not be able to see whether another participant is registered as rated or non-rated. You will be able to find out later by checking if their rating has changed.

We urge you not to abuse this feature in the future and to try to participate in rated mode. Use this option only if you have a valid reason.

Let's test the new feature together: participate in Testing Round 19! We advise you to randomly choose your registration type so that we have both rated and non-rated registrations.

After the round, we will temporarily recalculate ratings to ensure everything works correctly. After that, of course, the rating changes from Testing Round 19 will be removed.

Thank you for participating!

UPD: Thank you all for testing! Share your feedback in the comments. The ratings for this round will be rolled back within a few hours.

Full text and comments »

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

By MikeMirzayanov, 4 months ago, In English

Hello!

Over the past few days, I've received reports that Cloudflare is sometimes blocking completely legitimate actions by regular users.

I've already figured out some of the reasons for this (I think it's better now). However, it would be helpful if, in such cases, you could leave a comment here in the format: "URL : Ray ID : description of the action." For example: "https://mirror.codeforces.com/contest/2001/submit : 8b7fd4274bc1c315 : just tried to submit a solution."

I believe that if we gather such incidents, we can quickly eliminate this unwanted behavior.

Full text and comments »

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

By MikeMirzayanov, history, 4 months ago, In English

UPDATE: Some time ago, there was news here that we supported C++23 by installing GCC 14 from the Winlibs project. It turned out that with this method of supporting C++23, some compatibility issues lead to significant performance drops in certain submissions. So, I tried another distribution for GCC 14: the MSYS2 project. It seems that this problem does not occur with it, and now there are no unexpected performance drops. Let's test this C++23 support option together!

Hello, Codeforces!

Together with Vladosiya, we've added support for the 64-bit g++14 C++23. You can find it under the name GNU G++23 14.2 (64 bit, msys2).

If you're using Windows, you can easily install it via our minimalistic package manager, PBOX, by running the command pbox install gcc14-64-msys2.

Thanks to the MSYS2 project! We used the distribution from the official package manager.

Your solutions will be compiled using the following command line: g++ -Wall -Wextra -Wconversion -static -DONLINE_JUDGE -Wl,--stack=268435456 -O2 -std=c++23 program.cpp -lstdc++exp.

Now you can start using C++23 features!

Please note that support for GNU G++23 14.2 (64 bit, msys2) is currently experimental. We invite you to join in the testing and experimentation process. Share your thoughts and experiences in the comments!

Full text and comments »

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

By MikeMirzayanov, 5 months ago, In English

Hi!

Today I was shown a tweet https://x.com/deedydas/status/1818477947277525242

I'll quote the text here:

International Olympiad winners often go on to start world-changing things. OpenAI, Two Sigma, Telegram, Databricks, Perplexity, Devin, Ethereum, Udemy and even Python! You'll recognize some heavy hitters on the list. Nikolai Durov may be the most decorated of then all.

And there's also an interesting table there (I see Codeforcers there!):

click to view the table

Codeforces will soon turn 15 years old. Maybe this is an occasion to try to compile such a list? Suggest candidates in the comments! Please include at least three fields about the person: Handle, Name, and Career.

Full text and comments »

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

By MikeMirzayanov, 11 months ago, In English

Gamarjoba, Codeforces!

On Feb/06/2024 17:45 (Moscow time) will start Codeforces Round 923 (Div. 3), the next Codeforces round for the Div.3.

Lately, I've been coming up with problem ideas less frequently, but I don't want to lose this skill. Welcome to the round where all problems are my own creation! I hope you'll enjoy them.

A huge thank you to Vladosiya for preparing the majority of problems in Polygon. Also, thanks to pashka and KAN for helping with the discussion of problem ideas.

Thank you very much 74TrAkToR, CLown1331, EternalAlexander, Jostic11, Killever, KoT_OsKaR, LoveWX, MADE_IN_HEAVEN, dan_dolmatov, jnmtz111__, pedrolino, theRealChainman, yorky for testing the round.

As usual for the Div.3 rounds:

  • There will be 6-8 tasks in a round.
  • The round duration is 2 hours and 15 minutes.
  • The round follows the ICPC rules, with a penalty for an incorrect submission being 10 minutes.
  • The round is rated for participants with ratings up to 1600.
  • After the round, there will be a 12-hour open hacking phase.

Remember that only the trusted participants of the Div.3 will be included in the official standings table. As it is written in the link, this is a compulsory measure to combat unsporting behavior. To qualify as a trusted participant of the third division, you must:

  • Participate in at least five rated rounds (and solve at least one problem in each of them).
  • Not have a rating of 1900 or higher.

Regardless of whether you are a trusted participant of the third division or not, if your rating is less than 1600, then the round will be rated for you.

Good luck to all!

I really like it when the round announcement includes a photo of the authors. I plan to add one if I can take a suitable photo.

UPD 1: I found great burgers in Tbilisi!

UPD 2: The editorial is published: https://mirror.codeforces.com/blog/entry/125597 (thank you, Vladosiya).

Full text and comments »

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

By MikeMirzayanov, 11 months ago, In English

Hello, Codeforces.

Let's recall 2023, shall we?

In this post, I want to summarize this year. You know, a lot of terrible things happen in the world, and personally, this year was the hardest and most sorrowful for me. But today, we'll remember something else. We'll remember what this year was like for Codeforces.

Recently, Codeforces turned 14 years old. Not bad, right? And for many years now, when asked "What is Codeforces?" the first thing I say is — it's a community!

Full text and comments »

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

By MikeMirzayanov, 11 months ago, In English

Hello, Codeforces!

If you're developing problems in Polygon, you might like this image to attract attention.

For the new members of the community, I would like to remind you that Polygon (https://polygon.codeforces.com/) is a system developed and maintained by Codeforces for preparing programming problems. It is there that authors and coordinators develop all the problems for the rounds. Moreover, I believe a significant (large?) portion of the problems for other competitions is also developed there: various stages of ICPC, national competitions of different levels, educational problems for various courses, etc. In 2023, more than 50000 problems were prepared in Polygon (only those for which a package was compiled are counted)!

We often implement such improvements in Polygon that make the process of preparing a problem more reliable. These often include various automatic warnings and tips for problem developers and/or coordinators.

Today I want to talk about two recent such innovations in Polygon.

Full text and comments »

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

By MikeMirzayanov, 11 months ago, In English

Hello, Codeforces!

For the new members of the community, I would like to remind you that Polygon (https://polygon.codeforces.com/) is a system developed and maintained by Codeforces for preparing programming problems. It is there that authors and coordinators develop all the problems for the rounds. Moreover, I believe a significant (large?) portion of the problems for other competitions is also developed there: various stages of ICPC, national competitions of different levels, educational problems for various courses, etc. In 2023, more than 50000 problems were prepared in Polygon (only those for which a package was compiled are counted)!

Large language models are becoming an increasingly integral part of our lives, taking over routine and monotonous tasks.

With their help, problems created in Polygon will now have fewer typos and incorrect language constructions.

We have recently implemented three features in Polygon to ease routine tasks:

  • Translation of solutions into another programming language
  • Translation of problem statements into another language
  • Advice on improving the texts of problem statements

All these features operate on request and typically take 30-120 seconds for a response from the AI service (currently, only OpenAI GPT in our case).

While waiting for translations of solutions and statements is acceptable, waiting for advice on improving text was too tiresome.

I recently developed several problems and, despite my experience in writing statements (and even having the highly recommended Grammarly plugin in my browser), the automatic advice tool for improving text helped enhance them.

Another example: I checked the working versions of the Hello 2024 problems about a day before the round started and took the time to manually launch the edit prompter. In most (almost all?) problems, it indeed suggested errors or deficiencies in English/Russian. The corrections were minor, but why leave mistakes if they can be fixed?

Indeed, such a tool can greatly improve the grammar of statements, but using it on demand was tiresome.

As a result, I implemented background processing of the problem statements to simplify and speed up the application of this feature. Now, Polygon analyzes problem statements in the background to find shortcomings. If any are found, you will see a similar block in the problem's sidebar.

This block might not appear immediately upon changing the statement, as processing a request to the AI service usually takes tens of seconds.

Clicking on the review link will open a tool for merging changes.

This is a synthetic example. I made a few typos in the statement of my old problem. I should note that even the Grammarly plugin didn't catch all of them.

I circled one of the triangles. Click on them to transfer the proposed changes (on the right) to the text of the statement (on the left). You can only transfer for a whole paragraph at a time (that's how the tool works), but you can manually correct the left if you want to transfer part of the changes or modify them.

At the bottom of the form is a Save button that will save the updated statement.

I hope that authors and coordinators will not neglect this feature and that there will now be fewer typos and language errors in statements.

I would like to note that I see no reason to worry about data leakage when processing statements with the AI service. For example, OpenAI explicitly states that data from API requests cannot be used for training: https://help.openai.com/en/articles/5722486-how-your-data-is-used-to-improve-model-performance. After all, we've been googling problem ideas for many years to ensure the problem is new. It seems to be a similar case.

However, if you are still concerned and want to explicitly disable this feature, it can be done:

  • For a problem: via the Advanced link on the General info tab.
  • In user settings: disable this feature for all new problems you create.

Thanks for reading! Stay tuned for more updates.

Full text and comments »

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

By MikeMirzayanov, 12 months ago, In English

Hello.

Today I removed the account zh0ukangyang from the rating, after first nullifying its results in the Pinely Round 3 (Div. 1 + Div. 2) and banning it.

I would like to remind you again: Codeforces insists on the policy of using a single account. Creating and using additional accounts violates this rule. In an ideal world, each Codeforces account corresponds to one specific person.

Sometimes additional accounts are created for official, usually collective purposes (writing a post on behalf of a company, etc.). In such cases, these accounts do not participate in rated rounds and we do not pay attention to them unless there is some abuse of Codeforces resources.

Unfortunately, it is difficult for us to enforce this rule in almost all cases. But I urge you to respect the rules. Please remember that by registering for any rated contest, you confirm that you are participating with your only account. If this is not the case, then you are violating the community rules. Do not do this. By breaking the rules, you automatically agree that punishment may be applied to you.

In cases where rule violations significantly affect the ratings of other participants, we may take drastic measures. Remember, with great power comes great responsibility.

In this case, zh0ukangyang was at the top of the ratings, occupying high places in the rounds.

What should you do if you already have several accounts and want to stop breaking the rules? You should not write to us with a request to delete accounts or transfer data from one account to another. All you need to do is simply stop participating from all accounts except one. Change the password to a random one and do not log into the account anymore.

For participants at the very top (somewhere in the top 50 of the ratings), we are ready to manually deal with the situation and exclude illegal accounts from the rating.

M.

Full text and comments »

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

By MikeMirzayanov, 12 months ago, In English

Dear Santa Claus. Please make 2024 a happy year, not just that. Please, we all need this.

Hello, 2024!

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 that 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 2020 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 requirements don't meet. Please do not ask me to do something with it. Especially, I do not like requests like "this is my second account, I took an interesting handle myself". 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
  • +686
  • Vote: I do not like it

By MikeMirzayanov, 12 months ago, In English

TON Smart Challenge

Hello, Codeforces!

I'm happy to invite the Codeforces community to join an unusual competition organized by our title sponsor, the TON Foundation.

The competition will revolve around programming smart-contracts in FunC, native to the TON ecosystem. We invite the Codeforces community to participate in this contest and show that they can not only solve algorithmic problems in rounds but also delve into a new and interesting area.

Join the contest and master complex cell manipulations, smart contract storage organization, comment handling, basic cryptography, and the logic of governance smart contracts through problem-solving.

TON Smart Challenge 5 →

The tasks will go live on December 21, and the submission deadline is December 30 at 23:59:59 (UTC+4). To enter the challenge, register via the @smartchallengebot on Telegram. The bot will assist you throughout the registration process and send you notifications with the latest updates, such as the start of the contest or the tasks. The bot will also guide you on submitting your entry as a legitimate participant.

All entries must be submitted via GitHub, and your account must be at least a month old.

For comprehensive instructions on submitting your entries, refer to the official GitHub repository with the challenge tasks, which the bot will provide you on the first day of the contest.

The scoring system is simple. For each solved problem, the participant can earn a maximum of 6 points:

  • Successful solution of the problem = 5 points
  • Gas efficiency of the solution = 0 to 1 extra point

Prizes

The pool of $20,000 TON will be split equally between the top 100 participants of the leaderboard after plagiarising participants are removed. Every participant on the leaderboard will receive a participation soulbound token (SBT).

Prize pool distribution:

  • $7,000 in TON — The top 15% of eligible participants
  • $7,000 in TON — The middle 30% of eligible participants
  • $6,000 in TON — The bottom 55% of eligible participants

Impressive, right? Hurry up and join!

Good luck!

Full text and comments »

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

By MikeMirzayanov, 12 months ago, In English

Hello!

On December 13th, the ICPC Northern Eurasia Finals (previously known as NEERC) will take place. The competition will be held at several venues: St. Petersburg, Novosibirsk, Kutaisi, and Astana. Almost 300 teams will participate in it.

Onsite Contest Current Standings →
Don't look in it if you take part in the online mirror contest

We invite you to join the online mirror of the competition: 2023-2024 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred). It will start at Dec/13/2023 10:35 (Moscow time). We recommend participating in teams, but experienced individual participants will also have fun.

The duration of the competition will be 5 hours. Of course, the round is unrated.

Good luck!

Full text and comments »

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

By MikeMirzayanov, 14 months ago, In English

Hello, Codeforces. Friends.

I apologize, but today I will be a bit chaotic and mix personal with public. It just happened that way, I'm sorry.

Today, my mother passed away. It's hard for me to write this. Even just seeing it in text makes it feel like something from a nightmare.

She was extraordinary. It's difficult for me to articulate it right now, but take my word for it. It felt like all the best qualities one could imagine in a mother converged in her. I don't know any other people so kind, sincere, non-judgmental, capable of love, listening, befriending, supporting, and taking joy in the world around them, and bringing joy to their loved ones. Mom, it's already hard without you, it feels empty.

She had glioblastoma. It's an aggressive brain cancer that affects only a few people out of 100,000. I believe, I hope, that science will soon be able to tackle this disease. But for now, this diagnosis is a death sentence. Maybe some of you are or will be associated with medicine. I want to say thank you, I hug you.

Perhaps this is some form of catharsis, but visiting the Codeforces pages today, I pondered why I do this. What am I seeking here?

I want to enter another world. A world free from the insoluble problems of human ambition. A world where we discuss problems, algorithms, and programming.

The world is unjust and restless. It has black, white, blood-red, and some gray shades of unclear tones. But here, on Codeforces, I'm not looking for answers to all questions. I hug all of you and wish you peace, tranquility, and joy.

You may perceive this as a whim of mine, but now I don't want to see topics here that are considerably broader than programming, mathematics, and life outside our competitions. I want a united community, an intellectual oasis.

Focus on our competitions, not on global issues, will help me personally continue to be engaged in the community, develop and move it forward.

Please refrain from making posts, comments, or any other forms of expression on contentious topics like national/ethnic conflicts, politics, religion, sexual orientation, and gender identity, and any other topics distant from programming competitions that might lead to disputes or conflicts. We won't solve these problems here, we just can't.

Give me some time, and I will likely hide the most contentious posts on these topics. Please refrain from publishing anything that is beyond or close to the boundary mentioned above. By publishing materials that contain signs of such discussions, be prepared for read-only mode and other administrative measures.

I realize that I'm now limiting Codeforces and diminishing the community's involvement in our lives. But this is how I feel today, and I ask for your understanding. I wish you peace and love.

M.

P.S. Please cherish your loved ones while they are with you. Give them your attention. Bring joy to them, love them.

UPD 1: Friends, thank you very much for your attention. I read all the comments and am grateful to everyone who supported me.

UPD 2: Yesterday the funeral took place. Thank you for your support. With your help, it's easier for me to get through all of this.

Full text and comments »

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

By MikeMirzayanov, history, 17 months ago, In English

Hello, Codeforces.

It's scary to think about it: there are already almost 1800 rounds in the list of past contests!

I started adding a filter to the table with these rounds. Right now, you can already filter by some of the types of rounds. Here's what I've supported:

  • Div. 1
  • Div. 2
  • Div. 3
  • Div. 4
  • Div. 1 + Div. 2
  • Educational Rounds
  • CodeTON Rounds
  • Globals
  • Kotlin Rounds
  • VK Cup Rounds
  • Long Rounds
  • April Fools

Of course, I might have forgotten some types of contests. Please remind me if I missed anything. We should pay attention only to types where we have conducted several contests of that type.

I plan to expand this filter by adding more settings. Perhaps it would be good to filter by the condition "has at least one submission in this contest" (or those for which no submissions at all). What do you think?

What else would you suggest adding?

P.S. Here is how it looks on the website (some intermediate version, some options may be missing).

Full text and comments »

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

By MikeMirzayanov, 19 months ago, In English

Hello, Codeforces!

Unfortunately, today unexpectedly some errors occurred on the servers that we restarted before the round. We couldn't resolve them within 30 minutes. Half of the servers continue to work steadily.

I don't want to risk hosting the round. A round preparation includes too much collaboration between the authors, coordinator, and testers. I have made the decision to postpone the round so that we can hold it in the future with confidence that everything will be fine.

I apologize for the inconvenience. Today I will delve into what is happening and figure it out. There is no reason to think that something will not work for tomorrow's round.

We will announce the new date for Round 875 later.

Apologies again for the inconvenience, Mike

UPD: The round is rescheduled on May/28/2023 17:35 (Moscow time).

Full text and comments »

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

By MikeMirzayanov, 19 months ago, In English

Hello!

Now, if you've downvoted a comment, you can report it. You should do this if you're certain that one of the rules is being violated. Currently, the list of rules is as follows:

  • Hate/Offensive: The publication contains signs of hatred, racial slurs, derogatory language or intolerance. Please maintain a respectful tone; critical comments should include thoughtful reasoning.
  • Threats/Harassment: Content that contains explicit threats or harassment, including cyberbullying or stalking, is subject to censorship. Codeforces aims to create a safe and respectful environment for its users.
  • Violation of privacy: Content that discloses personal or confidential information about an individual without their consent, such as addresses, phone numbers, or financial details, can be censored.
  • Spam/Commercial: Content that is purely promotional, contains excessive links, or includes irrelevant commercial offers. We want to maintain the quality of discussions and prevent users from being inundated with unrelated or unwanted content.
  • False information/Misinformation: Content that spreads false information, misinformation, or conspiracy theories may be subject to censorship, particularly if they have the potential to cause harm or mislead others.
  • Offtopic: The content is not relevant to the subject being discussed. When leaving a comment, it should pertain to the topic of the parent blog post or parent comment. When writing a blog post, it should be somehow connected to programming contests, algorithms, coding, or be interesting to a significant portion of users.
  • No reasonable content: The content lacks any meaning or is not interesting to almost the entire audience of the website.
  • Poorly formatted/written: The content is deliberately or accidentally written in a way that makes it difficult to read: it disregards formatting rules or contains numerous errors that impede comprehension. Please use a preview before publishing and automated proofreading systems if you are unsure about your grammar proficiency.
  • Duplicate content: This content has already been discussed, and a new discussion will not bring anything new. The author can find answers on their own by using a search engine.
  • Invalid language: Acceptable languages are only English and Russian. When creating content in the system, it is necessary to select the correct language (as a result, content in Russian will not be displayed in the English-language interface). Minimal use of other languages for stylistic purposes is allowed. For example, you can greet in your native language in a post, emphasizing your origin.
  • Cheating/Spread of cheating: The content should not contribute to encouraging cheating or other rule violations. It is prohibited to publish links to any sources containing such content.
  • Discussion of ongoing contest problems: It is strictly prohibited to discuss problems, solutions, ideas, and problem topics, as well as express your opinion about them if a contest is still ongoing and such discussions are not explicitly allowed by the event organizers. Please refrain from making any comments regarding problems until the competition is over.

This feature is currently only available for the Div. 1. Let's see how it works, and maybe I'll expand the boundaries a bit.

In the administrative interface, there is an option to quickly respond to complaints. So, if you think there's a violation, please use this feature. In the case of a complaint, I can't guarantee that the comment will be deleted, but the administration will definitely review your complaint.

If you have any ideas on how to improve (expand?) the list above, please write them in the comments. It would be preferable if your suggestions included precise formulations for both a brief title and a more detailed explanation. However, I don't want to make this list too long. It would be good to limit it to a maximum of 15 items. I plan to make it so that this list is visible when writing a comment.

I designed this subsystem in such a way that it can be implemented not only for comments but also for posts or other units of content. Let's see how it works and continue with the implementation.

Full text and comments »

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

By MikeMirzayanov, history, 20 months ago, In English

Hello, Codeforces.

I have implemented automatic translation of problem statements in Polygon (yes, yes, through ChatGPT). Here's an example of how to use it:

  • Suppose we have a problem statement only in Russian and we want to have it in English as well.

  • Create an empty problem statement in English.

  • Go to the bottom of the problem statement and click on "Add automatic translation."

  • In the popup window, you can choose the original language for translation (we only have Russian, so there's nothing to choose) and the section of the problem statement to translate (by default, it usually selects the appropriate option — translate everything).

  • Click the "Translate" button.

  • Wait for ChatGPT to translate the text (it may take up to a couple of minutes).

  • When the translation is ready, it will be loaded into the popup window.

  • Click "Save Translation."

  • Done.

  • Remember to proofread the statement yourself. Although it's a quality machine translation, it's still a machine translation.

One useful thing to note is that this method of translation miraculously preserves most of the LaTeX markup.

When using it, remember that the API is not free. I have set quotas, and if they are exceeded, I will have to turn off the feature. I hope this doesn't happen.

There are a few more ideas on how to use ChatGPT for peaceful purposes. Don't go too far.

Full text and comments »

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

By MikeMirzayanov, 22 months ago, In English

Hi.

Of course, there was an unpleasant incident with the problem today. In fact, the problem almost coincided with another problem in the old round, which was hosted 5 years ago.

You, of course, are shocked. You, of course, think that the round should be unrated.

You are wrong. Here's why.

Full text and comments »

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

By MikeMirzayanov, 2 years ago, In English

Hello, Codeforces.

It's time to take stock of last year. Shall we begin? And we are happy to sum up the results of the last season of Global Rounds. We announce the results!

We remind you that the global rounds are a joint initiative of XTX and Codeforces.

We hold 6 such rounds per year. All of them are open to both divisions. At each such round, 50 brand T-shirts were handed out, and we are happy to give T-shirts to all problem authors.

The prizes for the 6-round series are:

  • In each round top-100 participants get points according to the table.
  • The final result for each participant is equal to the sum of points he gets in the four rounds he placed the highest.
  • The best 20 participants over all series get sweatshirts and place certificates.

Full text and comments »

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