This is a continuation on my previous blog about reading problems.
In this blog I'll share my view on how to read problems in ICPC competitions as a team.
The Importance of Reading Problems Effectively
In a programming competition, it is crucial to read all the problems in the set and develop the ability to rank them by difficulty just by reading their statements and spending a few minutes thinking about or discussing them with teammates. Identifying the easiest problems as quickly as possible is an essential skill. One way to determine which problems are easy is by checking the scoreboard. However, relying on this method can lead to a habit of always being behind the top teams. Therefore, a more effective strategy is to identify the easy problems before other teams by reading through as many problem statements as possible early on.
Keeping a Problem Table
A helpful approach is to maintain a table divided according to the number of problems in the contest. If a team member has read a problem, they should mark it in the table and briefly note what it is about, which topic it covers, or what technique they believe is required to solve it. Additionally, they should estimate the apparent difficulty of the problem. If a problem seems very easy, it should be solved immediately. Once a problem is solved, it should also be marked in the table—simply crossing it out can make it clear that no further work is needed on that problem. This table helps teammates keep track of which problems have been read and solved and provides useful hints for deciding which problem to attempt next, based on the estimated difficulty or familiarity with the identified topic or technique.
The Challenge of Speed-Reading Problems
Teams that are not used to reading many problems consecutively may find themselves at a disadvantage compared to teams that can do this efficiently. The latter will have a higher chance of finding the easiest problems in a shorter amount of time.
Training Exercise for Efficient Problem Reading
To improve the speed and efficiency of problem reading, the following practice exercise is recommended:
Participate in a contest or simulate one.
Divide the problems among the team members based on the first, second, and third thirds of the problem set (it is preferable to keep these assignments fixed across different contests since ICPC problems are usually presented in a random order of difficulty).
Set a strict time limit within which all problems must be read by at least one team member.
Avoid checking the scoreboard and refrain from solving or coding any problem during this exercise.
Read the problems as quickly as possible while still striving for maximum understanding.
Record the relevant notes in the problem table as mentioned earlier.
Once the time is up and all problems have been read, team members should discuss the problem difficulties and rank them in order of difficulty.
After establishing an order, check the scoreboard to evaluate how accurate the team's predictions were.
After the competition, assess how well the predictions matched reality.
Conclusion
By repeating this exercise as many times as necessary, a team can achieve significant improvements in both problem reading speed and accuracy in predicting problem difficulty, leading to better performance in real competitions.







