CSES - Introduction

The CSES Problem Set is a collection of algorithmic programming problems.

The goal of the project is to create a comprehensive high quality problem set for learning algorithmic programming. The current collection has 300 problems, and new problems will be gradually added.


You can solve problems in several languages, including C++, Java, and Python. More information about available languages is here.

Input and output

In all problems you should read input from standard input and write output to standard output.


After solving a problem, you can view the solutions by other users and try to hack them by giving a test case where the solution fails. Then, the new test case can be added to the test data and all submissions will be regraded.


You can use the problem set together with recent competitive programming books, listed here. The books discuss techniques and ideas that are useful when solving the problems.


The license of the problem set is Creative Commons BY-NC-SA 4.0.


If you have feedback on the problem set, you can send a message to ahslaaks@cs.helsinki.fi (Antti Laaksonen).