maspy's blog

By maspy, history, 2 months ago, In English

日本語記事(For Japanese Speakers)


Previous post: https://codeforces.me/blog/entry/150057

Submission: 384239819

2026/07/26 03:13:42 JST (2026/07/25 18:13:42 UTC)

I have solved every problem in the Codeforces PROBLEMSET except for those for which I determined that obtaining an accepted verdict is impossible.

unsolved problem list

Scope

I considered the problems listed in the PROBLEMSET.

I have solved very few problems from the GYM. The only collection I worked through systematically was the PROBLEMSET.

I determined that it is theoretically impossible to obtain an accepted verdict for the following 31 problems:

775A - University Schedule, (92101 ... 92114), 927A - BuberPool Taxi Optimization, 1160A2 - Collaboration, 1576A - Communication Routing Challenge, (1639A - Treasure Hunt .... 1639K - Treasure Hunt), 1885A - Deterministic Scheduling for Extended Reality over 5G and Beyond, 1953A - Accuracy-Preserving Summation Algorithm

These problems continue to occupy the list of unsolved problems in the PROBLEMSET, and there is no way to remove them from “Last Unsolved.” Should this not be considered a bug?

Motivation

I am often asked about my motivation, but is this really such an unusual challenge that it requires a special explanation?

Personally, I think it is a very simple and universally understandable goal, comparable to the satisfaction of placing highly in a contest or watching one’s rating increase.

I believe that most users who have continued competitive programming understand the enjoyment of solving problems and learning new ideas. As a natural extension of that, I kept trying to understand and get accepted on as many problems as possible, and eventually completing the entire PROBLEMSET came within reach.

Looking back, I think I started by trying to complete all Div. 3 problems.

However, the journey was difficult. There were many problems on which I made no progress for days, and at times I doubted whether I would ever be able to finish.

Did I solve every problem by myself?

No.

I think I solved roughly 300 to 500 of the problems after reading their editorials. I have never counted them accurately, so this is only a very rough estimate.

Even when I did not read an editorial directly, there were also problems whose solutions I learned indirectly through explanations of particular techniques or discussions on social media after contests.

However, even when I read an editorial, I generally tried to understand most of the solution and its proof before implementing it myself. I did not simply copy solution code.

On the other hand, if asked whether I fully worked out a rigorous proof for every problem, the answer would not always be yes, regardless of whether I solved it independently or after reading an editorial.

For many problems, once I understood the general structure and why the solution should be correct, I considered it sufficient if it also passed randomized testing.

In particular, for some problems whose optimal structure was justified by an extremely complicated exchange argument, it was difficult to organize every detail rigorously, and I gave up on doing so completely.

Exceptional problems

There were also cases where I used methods that would not normally be allowed during a contest, including copying solution code.

  • Problems for which the statement, judge, required file download links, or other necessary components were broken
  • Special contests such as April Fools’ Contests
    • For many such problems, I gave up not only on solving them independently, but even on making a serious effort to understand the editorial.
  • Language-restricted contests such as Kotlin Heroes
    • I also used AI to translate implementations written in C++ or another language into the required language. Doing this during a contest would clearly be cheating.
    • As far as I could determine, I found no rule prohibiting this outside a contest. However, I understand that it may not be well received by contest organizers or the competitive programming community.

For these reasons, there are aspects of this achievement that may make it inappropriate to describe it simply as "solving every Codeforces problem."

Thoughts

I believe this achievement is unprecedented, but it does not prove that I have the highest level of competitive programming skill. If a stronger user attempted the same challenge, they might well complete it in less time than I did.

This project also included many activities that do not directly translate into better contest performance. Studying obscure research-paper problems whose techniques will probably never appear again, appreciating problems with zero accepted submissions during the original contest, or becoming accustomed to spending several days debugging a single solution is unlikely to help very much in an actual contest.

Even so, I am extremely satisfied with this result.

I believe I have enjoyed the Codeforces PROBLEMSET more than anyone else.

Thank you.

A small announcement

Recently, I have started organizing solution notes, implementations, my own difficulty ratings, tags, and other information for problems I have solved, including problems from the past. This collection is not limited to the Codeforces PROBLEMSET.

I make this material available as a benefit of paid GitHub Sponsors tiers. Please check the public sample repository to see what it contains.

Full text and comments »

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

By maspy, history, 4 months ago, In English

Recently, I have often found myself somewhat concerned about the quality of problem statements on Codeforces.

Of course, this may simply be due to some bias: perhaps I just happened to notice more such cases over the past few months. I also fully understand that writing and reviewing problem statements is a very difficult task. Even so, I feel that there is still room for improvement in several respects.

In particular, I would appreciate it if more attention could be paid to the following points:

  • Finding and fixing typos before the contest, paying attention not only to the statement body but also to the input and sample sections.
  • Using the same expression as consistently as possible when referring to the same object or concept.
  • Avoiding undefined, problem-specific terminology as much as possible.
  • Checking whether technical terms are being used in a meaning different from their usual one.
  • Paying attention to potentially ambiguous expressions and arranging explanations in an order that is less likely to cause misreadings.

Of course, I am well aware that it is difficult to pay close attention to every detail, iterate many times, and produce a perfect problem statement.

On the other hand, in recent years, AI has become quite capable of helping with this kind of proofreading. My impression is that Codeforces problem statements still contain a non-negligible number of mistakes that could probably be improved by even a simple AI-based proofreading pass. That said, AI outputs can be unstable, so it is also possible that the writers have already been making such efforts, but the AI simply happened not to work well in those cases.

When AI is discussed in the competitive programming community, the topic is often about cheating, which I personally find rather exhausting. However, I do not see as much discussion about the positive use of AI in contest preparation, including proofreading problem statements. I believe such use should be encouraged more actively.

If AI is not yet widely used in Codeforces contest preparation, I would be grateful if people could start by trying to use it for proofreading problem statements from the kinds of perspectives listed above.


Below are some examples that I can recall immediately.

These are only cases that personally bothered me. Some people may consider them to be within an acceptable range.

2232D - Magical Tiered Cake The term "layer size" is not defined.

2232E - Snaking Arrangement The term "path size" is not defined. It may be standard in graph theory that "path size" refers to the number of vertices even without an explicit note, but I have not often seen the term used that way.

2231E - Graph Cutting A term is used in an unnatural meaning. https://codeforces.me/blog/entry/153824?#comment-1366359

2230A - Optimal Purchase There was a typo in the input section. a, b, c / n, a, b

2225E - Covering Points with Circles There was a typo in the input section. x, y / p_x, p_y

2219B2 - Unique Values (Hard version) The constraint in the Hack section of B2 was incorrect. 2000 / 1000

In addition, by looking at the announcements for various contests, one can find several instances where minor typos were corrected after the contest had already started.

Full text and comments »

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

By maspy, history, 8 months ago, In English

There are 100 problems left. I’ll do my best to solve all of the ones that are solvable in theory. Why don’t we all aim for AC on every problem?

Full text and comments »

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

By maspy, history, 17 months ago, In English

I often receive direct messages, many of which I ignore, though I do respond to some. Here, I’ve decided to write down answers to some frequently asked questions.

Going forward, I will likely continue to ignore most messages. If you really want a response, I think I can at least give some kind of reply if you support me with a positive amount via https://github.com/sponsors/maspypy.

I will probably not respond to most of the comments that this article will receive. However, if there’s something interesting, I may add it to the article.

Are there any tips for improvement?

Such overly common questions are best asked to tools like ChatGPT.

Are there any introductory articles I should read? Are there any books on competitive programming?

Please search the internet using keywords like "codeforces, tutorial", "competitive programming book".

What should I do to aim for IOI or ICPC?

Since I have absolutely no experience with these, I recommend asking someone else.

What problems should beginners try?

I recommend ABC (AtCoder Beginner Contest). I think the difficulty and required techniques tend to be more consistent compared to Codeforces. However, be careful as the later problems in a contest can sometimes be quite difficult.

On Codeforces, studying from div4, div3, or Educational Rounds would be a good approach.

How can you reach color X in Y months?

When I started Codeforces, I was already a red coder on AtCoder, so I probably had around Y-level skill from the beginning. However, at this point, I actually switched my main language from Python to C++, so it took some time to get used to it.

How do you solve so many problems?

When I started Codeforces, I was already a red coder on AtCoder, so many problems were simply easy for me. For example, you can see from the standings that top players can solve div3-level contests in about 20 to 60 minutes. In the very beginning, I started with such problems, so solving dozens of problems a day was easy.

Do you solve problems by yourself?

Basically, yes. I think I've referred to editorials for about 50 to 200 problems so far (just an estimate). As the number of easy problems decreases, I expect to rely more on editorials for the remaining ones (300+ problems are remaining).

I generally don't copy code from others, but there have been a few exceptions. Such as several problems in April Fool contests (which I don’t enjoy), or problems where the judge or problem statement seems to be broken.

Also, for special language contests including Kotlin Heroes, I often convert my code into another language using AI. Note that doing this during a contest is considered cheating.

Should I solve problems by contest or by difficulty?

I've rarely done "virtual contests" as a practice. My recommendation is just solve problems that match your difficulty level. But that's just my personal approach. There are also top players who primarily train through virtual contests.

How do you manage your libraries and create submission files?

The libraries I manage can be found at: https://maspypy.github.io/library/ I use online-judge-tools/verification-helper to expand the includes for submission. See https://github.com/online-judge-tools/verification-helper/blob/master/README.md

Can you be a writer or tester of our contest?

While I want to contribute to the competitive programming community, I'm already doing such work on AtCoder and have limited capacity. So at the very least, I don't intend to accept requests sent via Codeforces messages for free. (I did accept a request once, but the problem statements and test cases were of poor quality at the time of request, and it was a lot of work.)

Please solve this problem, Here's a problem statement

I generally won't respond to such requests, as they might contribute to cheating in an ongoing contest.

Please write an editorial for this contest/problem

Please contact the contest organizer.

Full text and comments »

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

By maspy, history, 2 years ago, In English

Hello.

I am Japanese and have been publishing some articles within the Japanese-speaking community for some time now. This is my first attempt at translating one of my Japanese explanatory articles into English. (This is also the first CodeForces blog for me).

The theme is the computation of formal power series composition and compositional inverse.

A method to improve the known computational complexity for this theme was introduced by noshi91 in March 2024.

Several blogs about this topic have been written within the Codeforces community.

However, I couldn't find any blogs, in Japanese or English, that thoroughly explore the following topics:

  • How to implement them with a better constant factor.
  • How to derive and implement the Composition Algorithm using Transposition Principle.

Therefore, I decided to explain this topic myself.


I have studied English to some extent, but I'm not very proficient. I received assistance from ChatGPT for translating many parts of the article. However, there might still be some incorrect English expressions remaining. If you notice any issues, please feel free to provide feedback.

If you find the article interesting, you can also support me through GitHub sponsors.

Actually, there is another article that has been requested for English translation, but I've left them untouched for quite some time. Maybe it's time to take on that translation challenge as well.

Thank you for reading.

Full text and comments »

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