A comprehensive collection of competitive programming solutions across multiple online judges. Whether you’re preparing for contests or learning new algorithms, you’ll find idiomatic implementations in a variety of languages.
kyopro refers to 競プロ (kyōpuro), the Japanese abbreviation of 競技プログラミング, which literally means “competitive programming.”
This repository gathers solved problems from platforms such as AtCoder, Codeforces, LeetCode, and more. Each folder corresponds to a judge or problem source, with solutions organized by contest/date or problem ID.
├── aoc # Advent of Code solutions
├── atcoder # AtCoder Beginner and Regular Contests
├── classical # Classical algorithms & tutorials
├── codeforces # Codeforces contest problems
├── codejam # Google Code Jam
├── cses # CSES Problem Set
├── hackercup # Facebook Hacker Cup
├── kattis # Kattis problems
├── kickstart # Google Kick Start
├── leetcode # LeetCode challenges
├── projecteuler # Project Euler problems
├── spoj # Sphere Online Judge
├── yukicoder # yukicoder contests
├── .gitignore
└── LICENSE # BSD-3-Clause license
Each folder contains source files named by problem code or contest date, often with a brief comment describing the problem.
This repo showcases solutions in several languages:
- C++
- Haskell
- D
- Rust
- Nim
- Python
- Other
Ensure you have the following installed to compile and run the examples you’re interested in:
- C++: g++ ≥ 11
- Haskell: GHC or Stack
- D: dmd or ldc
- Rust: rustc & cargo
- Nim: nim compiler
- Python: Python 3.7+
Adjust compiler flags or interpreter versions as needed for specific problems.
-
Clone the repository:
git clone https://github.com/Vicfred/kyopro.git cd kyopro
-
Navigate to your platform of interest, e.g.:
cd atcoder/abc123
-
Compile/Run a solution:
# C++ example g++ -std=c++17 solution.cpp -O2 -o solution ./solution < input.txt # Haskell example runhaskell Solution.hs < input.txt
Feel free to adapt file names, flags, or shebangs to your own workflow.
Contributions are very welcome! If you’d like to add new solutions or improve existing ones, please:
- Fork the repo
- Create a feature branch (
git checkout -b feature/awesome-solution
) - Commit your changes (
git commit -am "Add solution for X"
) - Push to your fork (
git push origin feature/awesome-solution
) - Open a Pull Request describing your changes
Please follow the existing naming conventions and include a brief problem description or link at the top of each file.
This project is licensed under the BSD-3-Clause License – see the LICENSE file for details.