<commit_before># During the Contest

So you made up your mind and are now competing in the ICPC. 
What does that entail?

You and your team arrived at the contest site, sat down at their single assigned computer, and got handed a problem set.
The clock starts and you are now in direct competition with every other team in the room to see who is able to solve the most problems.
Here we have compiled some tips our participants have accumulated over the years to make sure you are well prepared for that situation.

## Cheat Sheet

Everything starts with good preparation.
At most contests, you are allowed to bring a cheat sheet with your favorite algorithms.
Make sure your cheat sheet contains all algorithms that you think will likely appear on these problems.
It makes your life a whole lot easier if you can just take a fast algorithm for maximum flow from your cheat sheet instead of trying to remember how you did it last time.

## Reading the Problem Set

Right at the beginning of the contest, everybody is shooting for the low-hanging fruit.
Almost always there are one or two very simple problems that can be solved in a few lines of code.
You just have to find them.
For that, it has proven helpful that you divide the problem set into parts and at the start, everybody reads his assigned part of the problem set.

To give others an idea of what you read, you could create an overview sheet that contains the following (or more) information per problem: 
    - Topic (for example: Shortest Paths, Number Theory, etc)
    - Estimated difficulty of solving the problem (on a scale of 1-10, how hard is coming up with a solution)
    - Estimated difficulty of implementing the solution (on a scale of 1-10, how hard is coding the solution)

You could also include a column that contains a flag if you solved that problem to document your progress.
(Also the feeling to check a program of that you worked hard on is just great.)

## Choosing a problem to solve

Always try to solve the easiest problem that you have not solved yet.
Also, have a look at the public scoreboard.
Oftentimes, there is a problem that many other people have already solved.
Especially if teams with a lower rank than your team have already solved a problem, there is a high chance that you are also able to solve it.

## Solving the Problems

Time at the only computer is precious.
Thus, before you start to implement anything, make up a clear plan what you are trying to implement.
If you think you can solve a problem within a few minutes, just let one of you grab the computer and implement it, while the others start thinking about other, more difficult problems.
For harder problems it may make sense to write down pseudocode and work out the algorithm from there.

## Debugging

If you have an almost working solution that seems to have a bug, print your source code.<commit_msg>words words<commit_after># During the Contest

So you made up your mind and are now competing in the ICPC. 
What does that entail?

You and your team arrived at the contest site, sat down at their single assigned computer, and got handed a problem set.
The clock starts and you are now in direct competition with every other team in the room to see who is able to solve the most problems.
Here we have compiled some tips our participants have accumulated over the years to make sure you are well prepared for that situation.

## Cheat Sheet

Everything starts with good preparation.
At most contests, you are allowed to bring a cheat sheet with your favorite algorithms.
Make sure your cheat sheet contains all algorithms that you think will likely appear on these problems.
It makes your life a whole lot easier if you can just take a fast algorithm for maximum flow from your cheat sheet instead of trying to remember how you did it last time.

## Reading the Problem Set

Right at the beginning of the contest, everybody is shooting for the low-hanging fruit.
Almost always there are one or two very simple problems that can be solved in a few lines of code.
You just have to find them.
For that, it has proven helpful that you divide the problem set into parts and at the start, everybody reads his assigned part of the problem set.

To give your teammates an idea of what you read, you could create an overview sheet that contains the following (or more) information per problem: 
    - Topic (for example: Shortest Paths, Number Theory, etc)
    - Estimated difficulty of solving the problem (on a scale of 1-10, how hard is coming up with a solution)
    - Estimated difficulty of implementing the solution (on a scale of 1-10, how hard is coding the solution)

You could also include a column that contains a flag if you solved that problem to document your progress.
(Also the feeling to check a program of that you worked hard on is just great.)

## Choosing a problem to solve

Always try to solve the easiest problem that you have not solved yet.
Also, have a look at the public scoreboard.
Oftentimes, there is a problem that many other people have already solved.
Especially if teams with a lower rank than your team have already solved a problem, there is a high chance that you are also able to solve it.

## Solving the Problems

Time at the only computer is precious.
Thus, before you start to implement anything, make up a clear plan what you are trying to implement.
If you think you can solve a problem within a few minutes, just let one of you grab the computer and implement it, while the others start thinking about other, more difficult problems.
For harder problems it may make sense to write down pseudocode and work out the algorithm from there.

## Debugging

If you have an almost working solution that seems to have a bug, print your source code.
{'fraction_non_alphanumeric': 0.026443980514961725, 'fraction_numerical': 0.0020876826722338203, 'mean_word_length': 4.056288478452067, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3356601', 'n_tokens_mistral': 1345, 'n_tokens_neox': 1299, 'n_words': 1007}