Onsite regionals team strategy

Now that we are having onsite regionals (for the first time since 2019), I thought I will recap what happens there as well as how the strategy changes due to onsite.

Here are the constraints:

  • Each team has only one computer
  • No internet access
  • Printouts are allowed
  • The problems are available both online and on paper
  • (Exact constraints depends on the regionals) Each team is allowed some printed code templates and algorithm

A strategy for the regionals

The main constraint is ofcourse the fact that there is only one computer for the whole team. So managing the computer time is very important. Here are various high-level strategies for the same:

The start

During the start, the most important goal is to find the easiest problem. Due to the additive time penalty, the optimal order of problems is always from easiest to hardest. So finding the first problem to solve accurately is vital. Usually the idea is to divide the physical problem set between the 3 members equally and each member will try to find the easiest problem. Whoever finds the easiest problem should aim to solve it by themselves. During this period, frequently check the ranklist to get an idea of what other teams are solving first.

The initial phase after start

During this phase, usually one member can work on typing out the code template from the printed code that is allowed ,while the other members work to find the next easiest problem. Depending on the overall team level, it is best for the first 2-3 problems to be solved individually without collaboration.

The middle phase

This is the phase where things can slip quickly out of hand. So it is important to have a clear strategy ahead of time. The main strategy here is usually making sure the computer is always busy! Someone should always be coding. The problems during this phase would probably require collaboration and working with each other team mates to verify insights and debug code. Teams should practice doing that together by practicing together and discussing problems frequently.

For debugging, it is usually best to print out the code (and output/trace if required as a comment in the code!) and debug offline while someone else codes another problem. Getting a teammate’s help for debugging is also important as a second set of eyes often catch issues faster.

Continue to keep an eye on the ranklist every now and then to ensure you are not missing any easier problems.

The end game

The last one hour (when the rank list is also frozen), is the phase to go all out. Usually hard problems that require multiple insights and working together to find and debug solutions are solved during this phase. Make sure to attempt problems in the areas of strength. Sometimes it is necessary to make a decision such as ditching a problem that you are unable to solve and switch to something else - make sure the team has talked through such situations to ensure everyone knows what to do. In this phase, if you are quite behind, don’t hesitate to take risks (like submit early even if not well-tested, working on different problems in parallel etc.)

What is your team’s strategy? Would love to hear in the comments.

All the best for the regionals!