Warning: This repo also contains untested, incomplete and incorrect programs. I do not claim any responsibility for any any harm that these programs may cause to your computer. Use at your own discretion.
What is Competitive Programming?
Competitive Programming is a mindsport where participants try to program solutions to various mathematical and algorithmic problems while adhering to run-time and system memory constraints.
What is this repository?
This repostiory contains my solutions to thousands of programming challenges from multiple online judges. The purpose of this repo is to serve as a backup of all my solutions, and at the same time serve as a resource for fellow competitive programmers who are searching the internet for clues or solutions to problems that they are stuck on.
I should mention that none of these solutions are written with respect to best Software Engineering practices. The programs are written the way they are so that solutions to problems in competitions can be submitted as fast as possible. In some cases the solutions have small comments describing what the code is doing.
This repostiory also features some good implementations for advanced data structures and algorithms like - persistent segment trees, implict treaps, heavy light decomposition, centroid decomposition, suffix automaton etc.
Codeforces
Codeforces is one of the most active competitive programming communities on the internet. Each sub-directory in the Codeforces directory is named after a Codeforces round. The solution for each problem in the round is featured in its own folder, named after the problem code, usually a single uppercase alphabet.
Hackerrank
The Hackerrank directory contains solutions for problems on Hackerrank - another competitive progrmming website. Most of the solutions are from past competitions.
CodeChef
IPC - Solutions for the Indian Programming Community (IPC) programming contest series LONG - Solutions for CodeChef long challenges LTIME - Solutions for CodeChef lunch time challenges SHORT - Solutions for CodeChef CookOffs. SNACKDOWN - Solutions for CodeChef SnackDown challenges OTHER - Other contests Random - Random Problems
SPOJ
One of the oldest online judge. Solutions to most of the problems I solved can be found in the Random
directory
HackerEarth
Not as active on HackerEarth, but some of my favorite problems are on this website. In particular I am proud of problem C from Tesco Codeathon 2016 and the problem "Upgrade" from July Clash 2015.
Library
This directory contains template implementations of some advanced datastructures and algorithms that are useful for programming competitions.
Codejam
Google's flagship annual programming competition, also one of the most popular with the highest amount of participation.
Timus
Timus Online Judge is the largest Russian archive of programming problems with automatic judging system. Problems are mostly collected from contests held at the Ural Federal University, Ural Championships, Ural ACM ICPC Subregional Contests, and Petrozavodsk Training Camps