New to competitive programming or WMOJ? Start here.
Competitive programming is a sport where participants solve well-defined algorithmic problems under time constraints. You are given a problem statement, write code that reads input and produces the correct output, and submit it to an online judge that tests your solution against hidden test cases.
Problems typically involve data structures, algorithms, math, and logical reasoning. Solutions are evaluated on correctness (do all test cases pass?) and must run within the given time and memory limits.
Problems: Browse practice problems from the /problems page. Each problem has a point value, a time limit, and a memory limit.
Submitting: Click "Solve" on any problem, write your solution in Python, C++, or Java, and submit. The judge compiles and runs your code against all test cases and reports the results instantly.
Contests: Join timed contests from the /contests page. Your countdown starts when you join. Solve as many problems as possible before time runs out.
Points: Each problem you solve earns you points. Your total score is calculated using a weighted formula that rewards solving harder (higher-point) problems. Check the leaderboard at /users to see where you rank.