Mock contests and upsolving
- Module
- C.9
- Lesson
- 1 of 1
- Reading time
- 5 min
In this lesson
- Run a full mock contest in real time to practice time management and problem-solving.
- Recognize when to stop during a contest and which problem to work on next.
- Continue solving problems after the contest window (upsolving) to reinforce learning.
You have learned algorithms and techniques. You have practiced problem-solving on individual modules. But a real contest is different. You sit down with five problems you have never seen, no one to ask, and 180 minutes on the clock. A mock contest is a simulation of this. You solve a full past contest in real time, managing your time and deciding which problems to attempt. After the contest, upsolving is continuing to solve problems you did not finish during the contest window.
Running a mock contest
Find a past CCC contest. The CEMC past-contests page lists them by year and difficulty (Junior or Senior). Choose a contest at your level. If you usually solve Junior problems, start with a Junior contest. If you have been working on Senior material, choose a Senior contest.
Set a timer for 180 minutes. Print out or open the five problem statements. Do not look at any editorials, solutions, or hints. You are practicing solving the contest exactly as it would happen on contest day.
Read all five problems in the first ten to fifteen minutes. Estimate which ones look feasible for you. Then start coding. Use the time management strategy from the earlier module: allocate time to maximize your total score, not to polish one solution.
Submit each solution to the judge as you finish it. Pay attention to the feedback. If you get Wrong Answer, you have time to debug and resubmit. This is practice, not the real contest. The goal is to learn what gets stuck, what you can solve quickly, and where your time goes.
When the 180 minutes are up, stop. Note your score and which problems you solved completely, partially, or not at all.
What to look for during the mock
How much time does each problem take you? Did you estimate the difficulty correctly before you started? Did you get stuck and need to move on?
Where did you make mistakes? Logic errors, format mistakes, runtime errors, or time limit exceeded? Each type tells you something different about what to practice.
Did you submit the same problem more than once? What changed between submissions? Could you have debugged faster, or should you have moved on sooner?
Did you leave time on the table? If you finished two problems with 60 minutes left, did you try the third problem? Could you have earned partial credit?
After the contest: upsolving
Upsolving is solving the problems you did not finish during the contest window. You have passed the 180-minute limit. Now you can look at editorials, discuss the problem on forums, and take as long as you need.
Upsolving reinforces learning in two ways. First, you think through the problems you got stuck on during the contest, often with fresh eyes. A problem that seemed impossible during the pressure of the contest often becomes clear afterward. Second, you solidify techniques by implementing them when there is no time pressure.
For each problem you upsolved, write down the key insight you missed during the contest. What would have helped you see that insight faster? Was there a hint in the problem statement you overlooked? Did the sample input reveal something you missed?
Upsolving is not the same as reading an editorial and accepting the answer. Implement the solution yourself. Test it locally. This trains your problem-solving and coding skills.
Building a practice routine
After your first mock contest, wait a few days. Then upsolve all the problems you did not finish. Once you have solved all five, move to the next past contest. Waiting a few days lets your mind reset so you approach each problem fresh, not carrying frustration from the contest window.
Run at least two or three mock contests before the real contest. Between them, practice the individual problem types that gave you trouble: if you got stuck on a graph problem, spend time on graph problems before the next mock, then see whether that practice actually helps once you sit down for the next one.
Vary the difficulty across your mock contests. Running only Junior contests leaves you comfortable at that level but unprepared the first time you face a Senior one. Alternate: a Junior contest one week, a Senior contest the next.
What to expect as you repeat this
Your first mock contest will probably feel hard. You may not finish all five problems in 180 minutes, and solving only one or two completely with partial progress on a third is a normal result, not a sign that something is wrong. You have not yet practiced the specific pressure of an unfamiliar problem on a fixed clock.
After the contest, write down which problems you tackled and where the time went. Did you run out of time on something you were close to finishing? Did you skip a problem too quickly that turned out to be easier than it looked? These observations shape what you practice before the next mock.
Each mock after the first tends to go a little better, for a specific reason: you now know roughly how fast you solve different problem types, you have upsolving experience with the ones that stalled you, and you can read a new statement and guess its difficulty faster than before. That is the improvement a mock contest is for, not the score on any single run.
Recap
A mock contest simulates the real contest: five problems, 180 minutes, no help. Run one on a past CCC contest. Note where you got stuck, what you solved quickly, and where time went. After the contest window, upsolve the problems you did not finish. Implement the solutions yourself. Record the key insight you missed. Run two or three mocks before the real contest to build confidence and test your time management.