Track Awesome Competitive Programming Updates Daily
:gem: A curated list of awesome Competitive Programming, Algorithm and Data Structure resources
🏠 Home · 🔍 Search · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 lnishan/awesome-competitive-programming · ⭐ 12K · 🏷️ Miscellaneous
Jul 07, 2024
Syllabuses
☆: ★★★
Name: IOI Syllabus
Description: A detailed syllabus on which IOI contestants will be tested. This is still somewhat relevant to ACM-ICPC.
Nov 21, 2021
Community / Youtube and Livestreams
Name (Handle): Colin Galen (galen_colin)
Link: Youtube, Editorials, screencasts
Jun 03, 2021
Community / Youtube and Livestreams
Name (Handle): David Harmeyer (SecondThread)
Link: Youtube, Editorials, High qualtiy lectures(advanced topics)
Name (Handle): mycodeschool
Link: Youtube, High quality videos on basic programming, data structures and algorithms
Name (Handle): William Lin (tmwilliamlin168)
Link: Youtube, Mostly streams, tips but inspiring and sometimes insightful
Name (Handle): CodeNCode (kazama460)
Link: Youtube, Short lectures covering various CP related topics like Graph Theory, Number theory, DP, Advanced Data structures.
Name (Handle): William Feset
Link: Youtube, High quality videos covering almost all data structures, algorithms
Jun 01, 2021
Sites for Practice / Books for Mathematics
☆: ★★☆
Name: OmegaUp (Spanish)
Description: OmegaUp is a community-based website for competitive programing training. It's also where Mexican Olympiad in Informatics (OMI : Olimpiada Mexicana de Informática) is hosted.
Oct 21, 2020
Books / Open Courses for Algorithms and Data Structures
☆: ★★☆
Name: Algorithmic Thinking: A Problem-Based Introduction, by Daniel Zingaro
Description: A book that teaches data structures and algorithms using competitive programming problems (IOI, USACO, CCC/CCO, etc.).
Oct 10, 2020
Tutorial Websites
☆: ★★☆
Name: OI Wiki (Competitive Programming) (Chinese)
Description: OI Wiki is committed to being a free and open continuously updated programming competition (competitive programming) knowledge integration site. This wiki is a sort of companion or guide for the competitive programmer who's trying to learn something
Oct 06, 2020
Open Courses
☆: ★☆☆
Name: Materials (English) (⭐1.4k) from Arabic Competitive Programming YouTube Channel
Description: Some materials (slides & source codes) covering a broad range of algorithmic topics by Mostafa Saad Ibrahim.
Oct 02, 2020
Books / Books for Algorithms
☆: ★★★
Name: Algorithms, by Jeff Erickson
Description: A free electronic version of a self-published textbook licensed under CC by 4.0. This is a well written book from lecture notes of theoretical computer science courses at the University of Illinois. Covers the main paradigms of backtracking, dynamic programming, greedy, and particularly graphs in depth.
Oct 01, 2020
Tools / Contest Preparation
☆: ★★☆
Name: tcframe (⭐157)
Description: A C++ framework for generating test cases of competitive programming problems.
Sep 27, 2020
Tutorial Websites
☆: ★★☆
Name: 演算法筆記 (Algorithm Notes) (Chinese)
Description: One of the most popular tutorial websites among the Taiwanese competitive programming community. The maintainer for this website spends immense efforts on researching algorithms.
Sep 09, 2020
Sites for Practice / Contest Calendars
☆: ★★★
Name: Competitive Programming Contests Calendar
Description: Google Calendar export available
Jan 01, 2020
Books / Books for Mathematics
☆: ★★☆
Name: Discrete Mathematics and Its Applications, by Kenneth H. Rosen
Description: Discrete Mathematics is closely relevant to competitive programming. This book provides comprehensive materials on a wide range of topics including: Logics and Proofs, Sets, Functions, Sequences, Matrices, Number Theory, Recursion, Counting, Probability, Graphs, Trees and Boolean Alegra to name but a few.
Sites for Practice / Books for Mathematics
☆: ★☆☆
Name: Caribbean Online Judge
Description: COJ is hosted by University of Informatics Sciences (UCI, by its acronym in Spanish), located in Cuba. Feature ACM ICPC and Progressive contest styles, mostly from Caribbean and Latin American problem setters, also has problem classifier and contest calendar.
Tools / Contest Preparation
☆: ★★☆
Name: Graph Editor
Description: A fantastic tool to create and visualize graphs.
Sep 16, 2019
List of Lists
☆: ★★★
Name: Data Structures and Algorithms - CodeChef Discuss
Description: A very complete list of competitive programming resources. A must-have in your browser bookmark.
Aug 28, 2019
Books / Books for Algorithms
☆:
Name: Algorithms and Data Structures in Action, by Marcello La Rocca
Description: This book provides a different approach to algorithms, balancing theory with a more practical angle, with a section per-chapter focusing on how to apply algorithms to real-world use cases that can be found in your daily work, or in competitive programming; it also presents a blend of classic, advanced, and new algorithms.
Jul 25, 2019
Community / Youtube and Livestreams
Name (Handle): Kamil Debowski (Errichto)
Link: Youtube
Other Awesome Resources / Interview Questions
Name: LeetCode
Description: Well-organized website for software engineering interview preparation with best explanined solutions.
Apr 05, 2019
Tutorial Websites
☆: ★★★
Name: E-Maxx (Russian), (English)
Description: A tutorial website widely used and referenced in the Russian-speaking competitive programming community. Most of the articles of the original site have been translated into English, Google Translate works okay for the remaining ones.
Jan 29, 2019
Tools / Personal use
☆: ★★★
Name: General Practice Helpers: ... CHelper (IntelliJ IDEA) (manual) ... caide (⭐84) (Visual Studio, CodeLite, standalone command line app) ... JHelper (AppCode, CLion) online-judge-tools (⭐988) (Stand alone CLI tool, It is actively maintained.)
Description: Great tools that parse contests, inline library codes and provide testing frameworks. They save you from spending your precious time on switching windows and copy-pasting back and forth.
Jan 24, 2019
Sites for Practice / Problem Classifiers
☆: ★☆☆
Name: Codeforces Tags
Description: CF (DP)
Dec 26, 2018
Sites for Practice / Problem Classifiers
☆: ★★☆
Name: Juniors Training Sheet, by Mostafa Saad Ibrahim
Description: ~800 ordered problems for newcomers to be good up to Div2-D
Tutorial Websites
☆: ★★★
Name: Mini-Editorials (⭐376), by Mostafa Saad Ibrahim trainees
Description: Solutions with mini-editorials for many problems, including UVA/SPOJ/IOI/Olympiad problems
Sites for Questions / Camps and Trainings
☆: ★★★
Name: Online Free Problem-Solving Coaching, by Mostafa Saad Ibrahim
Description: See the coaching details and people comments on its nature/quality.
Dec 25, 2018
List of Lists
☆: ★★★
Name: All of the good tutorials found on codeforces - Codeforces
Description: Another good collection of tutorial blog posts written by Codeforces users.
Syllabuses
☆: ★★★
Name: How to prepare for ACM - ICPC? - GeeksforGeeks
Description: A detailed walk-through of the preparations for ACM-ICPC.
☆: ★★☆
Name: Programming Camp Syllabus
Description: A list of important topics in competitive programming with exercise problems.
Tutorial Websites
☆: ★★★
Name: Topcoder Data Science Tutorials
Description: A list of tutorials written by respected Topcoder members. Many top programmers started learning data sciences from here.
☆: ★★☆
Name: Algorithms - GeeksforGeeks
Description: A website with a large archive of nicely written articles on different topics. It is a great complimentary resource for algorithm courses.
☆: ★★☆
Name: PEGWiki
Description: A website with amazing in-depth wiki-like writeups on many topics. It's far better than those on Wikipedia in my opinion.
☆: ★★☆
Name: Notes - HackerEarth
Description: A great crowdsourcing platform for tutorials. Also visit Code Monk.
☆: ★★☆
Name: USA Computing Olympiad (USACO)
Description: Contains several training pages on its website which are designed to develop one's skills in programming solutions to difficult and varied algorithmic problems at one's own pace.
☆: ★★☆
Name: basecs
Description: A blog with in-depth, illustrated tutorials on basic algorithms and data structures.
☆: ★★☆
Name: Competitive Programming - Commonlounge
Description: Short video tutorials for beginner and intermediate concepts. Advanced tutorials selected from the best ones available on various CP blogs.
☆: ★☆☆
Name: OLYMPIADS IN INFORMATICS
Description: An international journal focused on the research and practice of professionals who are working in the field of teaching and learning informatics to talented student.
☆: ★☆☆
Name: algolist (Russian)
Description: A Russian website devoted to algorithms of all sorts. Some topics listed on this website seems pretty interesting.
☆: ★★☆
Name: 国家集训队论文 1999-2015 (Papers from Chinese IOI training camps) (Chinese)
Description: Papers from the Chinese IOI training camps. It's interesting for the fact that one can tell different regions emphasize different things.
Open Courses
☆: ★★☆
Name: Code Monk, by HackerEarth
Description: A fantastic step-by-step tutorial on the essential topics in competitive programming.
☆: ★★☆
Name: How to Win Coding Competitions: Secrets of Champions
Description: A course by ITMO University on competitive coding on edX.
☆: ★★☆
Name: Codechef's Indian Programming Camp
Description: Video Lectures from Codechef's Indian Programming Camp 2016. Lectures given by top competitive programmers like Sergey Kulik, Kevin Charles Atienza and Anudeep Nekkanti. Primarily focused on exploring these concepts by applying them to actual competitive contest problems.
☆: ★★☆
Name: NCTU DCP4631: Problem Solving and Programming Techniques
Description: A course on basic topics featuring good lecture slides.
Open Courses / Open Courses for Algorithms and Data Structures
☆: ★★★
Name: MIT SMA 5503: Introduction to Algorithms
Description: Lectured by Prof. Charles Leiserson (one of the coauthors of Introduction to Algorithms) and Prof. Erik Demaine (a brilliant professor who has made remarkable breakthroughs in data science), the course offers great materials, accompanied by intuitive and comprehensive analyses.
☆: ★★☆
Name: UIUC Algorithm Course
Description: lecture notes, homeworks, exams, and discussion problems covering a broad range of algorithmic topics
Books / Open Courses for Algorithms and Data Structures
☆: ★★☆
Name: Competitive Programming, by Steven and Felix Halim
Description: This book contains a collection of relevant data structures, algorithms, and programming tips. It's a well-received book. ... The first edition is free for download (pdf).
☆: ★★☆
Name: Programming Challenges: The Programming Contest Training Manual, by Steven Skiena and Miguel Revilla
Description: This book includes more than 100 programming challenges, as well as the theory and key concepts necessary for approaching them. Problems are organized by topic, and supplemented by complete tutorial material.
☆: ★★☆
Name: Competitive Programmer's Handbook, by Antti Laaksonen
Description: An introduction to competitive programming for aspiring IOI and ICPC contestants. Free to download (pdf).
☆: ★★☆
Name: Computational Geometry: Algorithms and Applications, by Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars
Description: This is a well-written book which covers a broad range of computational geometry problems.
Books / Books for Algorithms
☆: ★★☆
Name: Algorithm Design, by Jon Kleinberg and Éva Tardos
Description: This book revolves around techniques for designing algorithms. It's well-organized and written in a clear, understandable language. Each chapter is backed with practical examples and helpful exercises. The chapter on network flow is highly praised by lots. ... The lecture slides that accompany the textbook are available on its official website.
☆: ★★☆
Name: The Algorithm Design Manual, by Steven S. Skiena
Description: The book is written in more readable text. Some find it comprehensive than other books. You can also find some good resources (including the author's own video lectures) on its official website.
☆: ★★★
Name: Algorithms, by Robert Sedgewick and Kevin Wayne
Description: This book is neatly categorized, coupled with elaborate explanations and fantastic illustrations. It is used in some IOI training camps as a textbook.
Books / Books for Mathematics
☆: ★★☆
Name: Concrete Mathematics: A Foundation for Computer Science, by Ronald L. Graham, Donald E. Knuth, Oren Patashnik
Description: The book offers a deeper insight into Discrete Mathematics with more emphases on number-related topics.
☆: ★★☆
Name: Linear Algebra and Its Applications, by David C. Lay, Steven R. Lay, Judi J. McDonald
Description: The book does a brilliant job at bridging the gap between a physical system (for scientists and engineers) and an abstract system (for mathematicians).
☆: ★★☆
Name: How to Solve It: A New Aspect of Mathematical Method, by G. Polya
Description: An old-time classic. In this book, the author provides a systematic way to solve problems creatively.
☆: ★★☆
Name: Intermediate Counting & Probability, by David Patrick
Description: Topics in counting and probability byformer USA Mathematical Olympiad winner David Patrick , topics include inclusion-exclusion, 1-1 correspondences, the Pigeonhole Principle, constructive expectation, Fibonacci and Catalan numbers, recursion, conditional probability, generating functions, graph theory, and much more..
Sites for Practice / Books for Mathematics
☆: ★★★
Name: Topcoder
Description: Topcoder has been around since 2001. Rich in history, It's considered to be one of the most prestigious organizations when it comes to technology competitions. Hundreds of SRMs gave birth to an abundant problemset. Problems here are typically more challenging than others and Topcoder therefore appeals to many elite programmers. The annual Topcoder Open (TCO) is also a widely-discussed event.
☆: ★★★
Name: Google Code Jam
Description: Google Code Jam is certainly one of the most highly-esteemed programming competitions. The competition consists of unique programming challenges which must be solved in a fixed amount of time. Competitors may use any programming language and development environment to obtain their solutions.
☆: ★★★
Name: AtCoder
Description: AtCoder is a new but phenomenal contest platform created by a team of highly-rated Japanese competitive programmers.
☆: ★★★
Name: SPOJ
Description: The SPOJ platform is centered around an online judge system. It holds a staggering amount of problems prepared by its community of problem setters or taken from previous programming contests, some of which are great problems for practice (refer to the Problem classifiers section). SPOJ also allows advanced users to organize contests under their own rules.
☆: ★★☆
Name: Aizu Online Judge
Description: Aizu online judge is a contest platform and problem archive hosted by The University of Aizu. It has a lot of great problems from programming competitions in Japan.
☆: ★★☆
Name: UVa
Description: An old-school problem archive / online judge with rich history. Thousands of problems, including many classic ones, are featured here. However, it is strongly advised that you practice with uHunt following its "Competitive Programming Exercise" section.
☆: ★★☆
Name: POJ
Description: POJ is an online judge with many great problems maintained by Peking University. Most Chinese competitive programmers began their journey here. The platform is really dated so mysterious compilation and run-time issues may occur.
☆: ★★☆
Name: Russian Code Cup
Description: Programming competitions powered by Mail.Ru Group. Competition consists of 3 qualification, 1 elimination and 1 final rounds. For each round contestants are given 4-8 problems which must be solved in a fixed amount of time.
☆: ★★☆
Name: CodeFights
Description: CodeFights is a website for competitive programming practice and interview preparation. It features daily challenges of varying difficulty, an archive of problems and regular (every 15 minutes) mini-tournaments. Good for beginners.
Sites for Practice / Problem Classifiers
☆: ★★☆
Name: HackerRank
Description: HackerRank
☆: ★★☆
Name: Topcoder problem archive
Description: List of problems with categories and complexity levels
Sites for Practice / Contest Calendars
☆: ★★☆
Name: clist.by
Description: API available for use
Sites for Questions / Contest Calendars
☆: ★★☆
Name: Theoretical Computer Science Stack Exchange
Description: This place is generally for the academics, so don't ask questions about contest problems here.
Implementations / Camps and Trainings
☆: ★★★
Name: CodeLibrary, by Andrey Naumenko (indy256)
Description: CodeLibrary contains a large collection of implementations for algorithms and data structures in Java and C++. You may also visit his GitHub Repository (⭐1.8k).
☆: ★★★
Name: spaghetti-source/algorithm (⭐781), by Takanori MAEHARA (@tmaehara)
Description: High-quality implementations of many hard algorithms and data structures.
☆: ★★★
Name: kth-competitive-programming/kactl (⭐2.6k), by Simon Lindholm (simonlindholm) et al.
Description: A phenomenally organized, documented and tested team notebook from KTH Royal Institute of Technology. One of the most well-crafted team notebooks (contest libraries) I've ever seen.
☆: ★★☆
Name: jaehyunp/stanfordacm (⭐1.6k)
Description: Stanford's team notebook is well maintained and the codes within are of high-quality.
☆: ★★☆
Name: ngthanhtrung23/ACM_Notebook_new (⭐420), by team RR Watameda (I_love_Hoang_Yen, flashmt, nguyenhungtam) from National University of Singapore
Description: RR Watameda represented National University of Singapore for the 2016 ACM-ICPC World Finals. The items in this notebook are pretty standard and well-organized.
☆: ★★☆
Name: bobogei81123/bcw_codebook (⭐111), by team bcw0x1bd2 (darkhh, bobogei81123, step5) from National Taiwan University
Description: bcw0x1bd2 represented National Taiwan University for the 2016 ACM-ICPC World Finals. This notebook contains robust implementations for advanced data structures and algorithms.
☆: ★☆☆
Name: foreverbell/acm-icpc-cheat-sheet (⭐168), by foreverbell (foreverbell)
Description: A notebook with some advanced data structures and algorithms including some from the China informatics scene.
☆: ★☆☆
Name: igor's code archive, by Igor Naverniouk (Abednego)
Description: A good notebook by Igor Naverniouk who is currently a software engineer at Google and part of the Google Code Jam team.
Language Specifics / C/C++
☆: ★★☆
Name: Power up C++ with the Standard Template Library - Topcoder: Part 1, Part 2
Description: An introductory tutorial on basic C++ STLs.
☆: ★★☆
Name: Yet again on C++ input/output - Codeforces
Description: Learn more about C++ I/O optimizations.
☆: ★★☆
Name: C++ Tricks - Codeforces ... What are some cool C++ tricks to use in a programming contest? - Quora
Description: Plentiful C++ tricks for competitive programming. Note that some should be used with care.
☆: ★★★
Name: C++ STL: Policy based data structures - Codeforces: Part 1, Part 2
Description: Detailed introduction to the extra data structures implemented in GNU C++. The official documentation can be found here.
☆: ★☆☆
Name: C++11 FAQ (English, Chinese, Russian, Japanese, Korean)
Description: A list of FAQs regarding C++11 collected and written by Bjarne Stroustrup, the creator of C++.
Language Specifics / Java
☆: ★★☆
Name: How to read input in Java — tutorial - Codeforces
Description: Learn how to read input faster. This is a must-read for those who intend to use Java for competitive programming
☆: ★★☆
Name: How to sort arrays in Java and avoid TLE - Codeforces
Description: Some tips on how to avoid hitting the worst case of quick sort
☆: ★★☆
Name: BigNum arithmetic in Java — Let's outperform BigInteger! - Codeforces
Description: A basic but faster custom BigInteger class
☆: ★★☆
Name: EZ Collections, EZ Life (new Java library for contests) - Codeforces
Description: A Java library for contests written by Alexey Dergunov (dalex). ArrayList, ArrayDeque, Heap, Sort, HashSet, HashMap, TreeSet, TreeMap, TreeList and pair classes are implemented
Language Specifics / Miscellaneous
☆: ★★★
Name: Bit Twiddling Hacks
Description: A huge compiled list of bit manipulation tricks.
☆: ★★★
Name: Comparing Floating Point Numbers, 2012 Edition - Random ASCII
Description: Everything you need to know about floating point numbers. A must read especially for geometry topics.
☆: ★★☆
Name: Object-Oriented C Style Languages: C++, Objective-C, Java, C# - a side-by-side reference sheet
Description: A detailed side-by-side reference sheet for common syntaxes.
Tools / IDEs
☆: ★★★
Name: Vim
Platform: CLI / Cross-Platform
Description: Vim is one of the most popular text editors among advanced programmers. It allows text-editing to be done very efficiently with solely keystrokes. Vim is also highly configurable, extensible and integrates with shells (command lines) really well. The only setback about Vim is that it has a high learning curve for beginners.
☆: ★★★
Name: Emacs
Platform: CLI / Cross-Platform
Description: Emacs is another popular text editor (or development environment to be more precise). The debate on "Vim vs. Emacs" is constantly brought up due to their popularity. Basically Emacs is more than just a text editor. It has plugins like file managers, web browsers, mail clients and news clients that allows users to performs these tasks directly inside Emacs. Emacs is "heavier" because of this, but it arguably has a relatively easier learning curve for beginners.
☆: ★★★
Name: Far Manager
Platform: Hybrid / Windows
Description: Far Manager is the most widely-used editor in the RU/CIS competitive programming community. It's actually a file manager in its bare bones, but you can install FarColorer - a syntax highlighter plugin to program on it. Properly configured, Far Manager allows you to navigate between files very efficiently while writing your codes.
☆: ★★★
Name: Code::Blocks
Platform: GUI / Cross-Platform
Description: Code::Blocks is the go-to IDE for C/C++. It's a full-fledged, versatile IDE with numerous great features. Code::Blocks is usually provided along with Vim in programming contests.
☆: ★★★
Name: IntelliJ IDEA
Platform: GUI / Cross-Platform
Description: IntelliJ IDEA is certainly one of the best IDEs for Java. It's used by most competitive programmers who use Java as their main language. Be sure to check out CHelper, a very handy plugin written for programming contests.
☆: ★★☆
Name: Sublime Text
Platform: GUI / Cross-Platform
Description: Sublime Text is an extraordinary text editor. Packed with powerful and innovative features like Multiple Carets, Minimaps and Command Palletes, it attracts a strong and engaging community. Sublime Text is highly extensible, so be sure to have Package Control installed and explore perhaps one of the largest catalogue of plugins!
☆: ★★☆
Name: Eclipse
Platform: GUI / Cross-Platform
Description: Eclipse is another good IDE for Java. It's an okay alternative to Intellij IDEA (A tad inferior to IDEA by today's standards). Sometimes contests only provide Eclipse for some reason, so this might be a good incentive to try and use Eclipse.
☆: ★★☆
Name: CLion
Platform: GUI / Cross-Platform
Description: CLion, produced by JetBrains - the same company who made Intellij IDEA, is a powerful IDE for C++. Free educational licenses are available OR you can try out their EAP (Early Access Program) which is still free as of Apr, 2018. You may want to turn off its code inspection feature as it will cause quite a bit of lag.
☆: ★☆☆
Name: Other IDEs
Platform: Mixed
Description: Visual Studio is the IDE to use in case you want to code in C#. ... Both Atom and Visual Studio Code are built with Electron (written in JavaScript) and therefore somewhat resource-hogging. ... CodeLite is a newly rising IDE. Beware that the load-up and project-creation times can be extraordinary.
Tools / Personal use
☆: ★★★
Name: VisuAlgo
Description: A website featuring a large collection of visualization tools for algorithms and data structures.
☆: ★★☆
Name: Codeforces Parsers: ... Codeforces Parser (⭐133) ... GoCF (⭐47) ... cfparser (⭐17) (emacs) cfparser (⭐3) (cli)
Description: These tools parse Codeforces contest problems and help run sample tests.
☆: ★★★
Name: The On-Line Encyclopedia of Integer Sequences (OEIS)
Description: A stunning encyclopedia with a database of countless integer sequences. It also features a powerful search engine. Sometimes a seemingly difficult combinatorics problem could be equivalent to a simple or studied integer sequence.
☆: ★★☆
Name: Syntax Highlighters: ... tohtml.com ... markup.su ... hilite.me
Description: Very handy for creating slides or team notebooks with pretty, formatted code snippets. Just copy the highlighted code snippets and paste them in your favorite WYSIWYG (What-You-See-Is-What-You-Get) editor!
☆: ★★☆
Name: Code Sharing: ... Ideone.com ... Pastebin.com ... Ubuntu Pastebin
Description: These tools generate semi-permanent pages for code sharing. Very useful especially when you're trying to get someone else to look into your code.
☆: ★★☆
Name: Ineffable
Description: A simple command-line grader for local grading.
☆: ★★☆
Name: uDebug
Description: A platform that provides expected outputs for user-specified inputs to problems on the UVa Online Judge. Some problems also provide additional test cases for debugging.
Tools / Contest Preparation
☆: ★★★
Name: polygon
Description: polygon provides a platform and a rich set of tools for professional contest preparation. ... An example: Validators with testlib.h - Codeforces
☆: ★★★
Name: Virtual Judge (vjudge)
Description: Virtual Judge (vjudge) allows users to create virtual contests with problems from notable problem archives.
☆: ★★☆
Name: BNU Online Judge
Description: BNU Online Judge also allows users to create virtual contests.
☆: ★★☆
Name: Kattis
Description: Kattis assists in contest preparation (E-mail them for assistance).
Community / Blogs
Name (Handle): Petr Mitrichev (Petr)
Blog Name: Algorithms Weekly
Name (Handle): Makoto Soejima (rng_58)
Blog Name: rng_58's blog
Name (Handle): Huang I-Wen (dreamoon)
Blog Name: 小月的耍廢日誌 (Chinese)
Name (Handle): Yuhao Du (TooDifficuIt, TooSimple, xudyh)
Blog Name: xudyh (Chinese)
Community / Youtube and Livestreams
Name (Handle): Petr Mitrichev (Petr)
Link: Youtube
Name (Handle): Gate Lectures by Ravindrababu Ravula
Link: Youtube
Name (Handle): Mostafa Saad Ibrahim (mostafa.saad.fci)
Link: Competitive Programming Youtube (Arabic Speech-English Text)
Name (Handle): Tushar Roy
Link: Youtube, with many tutorial videos.
Name (Handle): GeeksforGeeks
Link: Youtube
Name (Handle): Algorithms Live!
Link: Youtube
Name (Handle): CodeChef
Link: Youtube
Name (Handle): HackerRank
Link: Youtube
Name (Handle): IDeserve
Link: Youtube
Name (Handle): code_report
Link: Youtube, with contest updates and problem tutorials of HackerRank, LeetCode, Topcoder and Codeforces.
Name (Handle): "Sothe" the Algorithm Wolf
Link: Youtube
Name (Handle): Mikhail Tikhomirov (Endagorion)
Link: Youtube
Community / Quora
Important Community Figures: Bill Poucher
Description: Executive Director of ACM-ICPC. CS Professor at Baylor University.
Important Community Figures: Michal Forišek (misof)
Description: Organizer of IPSC and IOI. CS Teacher at Comenius University in Slovakia. Algorithm and CS Education Researcher. Former highly-rated competitive programmer.
Important Community Figures: Ahmed Aly (ahmed_aly)
Description: Founder of A2OJ. HackerRank Lead Software Engineer. Former member of the Google Code Jam team.
Other Awesome Resources / Articles
- Subject: How to prepare for ACM - ICPC? - GeeksforGeeks, by Vishwesh Shrimali
- Subject: Complete reference to competitive programming - HackerEarth, by Ravi Ojha
- Subject: Getting started with the sport of competitive programming - HackerEarth, by Triveni Mahatha
Other Awesome Resources / Awesome Lists
Name: C++ Books
Link: The Definitive C++ Book Guide and List - Stack Overflow
Name: Free Programming Books
Name: Community-curated C++ Resources
Link: Hackr.io
Aug 15, 2016
Other Awesome Resources / Interview Questions
Name: CareerCup
Description: The most popular website for software engineering interview preparation.
Name: InterviewBit
Description: Features intriguing and refreshing game-play designs which are designed to invoke one's interest in practicing.
Jul 16, 2016
Sites for Practice / Books for Mathematics
☆: ★★☆
Name: CS Academy
Description: New in the competitive programming scene, CS Academy is a growing online judge that hosts competitions once every two weeks. It supports live chat, interactive lessons and an integrated online editor (that actually works).
Community / Blogs
Name (Handle): Anudeep Nekkanti (anudeep2011)
Blog Name: Namespace Anudeep ;)
Community / Quora
Competitive Programmers: Thanh Trung Nguyen (I_love_Hoang_Yen)
Competitive Programmers: Johnny Ho (random.johnnyh)
Competitive Programmers: Steven Hao (stevenkplus)
:
Jun 26, 2016
Books / Open Courses for Algorithms and Data Structures
☆: ★☆☆
Name: The Hitchhiker’s Guide to the Programming Contests, by Nite Nimajneb
Description: This book is free for download (pdf). This book covers various topics relevant to competitive programming.
☆: ★★★
Name: プログラミングコンテストチャレンジブック (Japanese), by 秋葉拓哉, 岩田陽一, 北川宜稔
Description: An absolutely phenomenal book. The contents, organized in a very coherent manner, are nothing short of amazing. ... 培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享 (Chinese Traditional)
Jun 24, 2016
Open Courses
☆: ★★★
Name: Stanford CS 97SI: Introduction to Competitive Programming Contests
Description: Offers comprehensive lecture slides and a short list of exercise problems.
Books / Open Courses for Algorithms and Data Structures
☆: ★★★
Name: 算法艺术与信息学竞赛 (Chinese), by 刘汝佳, 黄亮
Description: An old-time classic. It's old but the contents in this book are still considered to be very difficult by today's standards.
Other Awesome Resources / Awesome Lists
Name: Java Books
Name: Advanced Java Books
Link: What is the best book for advanced Java programming? - Quora
Jun 19, 2016
Sites for Practice / Contest Calendars
☆: ★★★
Name: CodeHorizon: iOS App, Android App
Description:
Jun 15, 2016
Sites for Practice / Contest Calendars
☆: ★★★
Name: Programming Contest Calendar - HackerRank
Description: Google Calendar export available
May 25, 2016
Other Awesome Resources / Awesome Lists
Name: Algorithms
Name: Algorithm Visualization
Link: enjalot/algovis (⭐1.6k)
Name: Math
Name: C++
Name: Java
Name: Courses
Other Awesome Resources / Interview Questions
Name: Awesome Interviews (⭐69k)
Description: A curated list of awesome interview questions
May 20, 2016
List of Lists
☆: ★★★
Name: Good Blog Post Resources about Algorithm and Data Structures - Codeforces
Description: A collection of fantastic tutorial blog posts written by Codeforces users. Some intriguing ones include Palindromic Trees, Policy Based Data Structures, and a lot more.
Books / Books for Mathematics
☆: ★★☆
Name: Introduction to Probability, by Charles M. Grinstead, J. Laurie Snell
Description: This is a well-written introductory probabilities book. ... It's free for download (pdf) (released under GNU Free Documentation License).
Sites for Questions / Contest Calendars
☆: ★★★
Name: Codeforces
Description: For quick answers, Codeforces is definitely the go-to place to ask about anything competition-related.
☆: ★★★
Name: Competitive Programming - Quora
Description: You would typically get more elaborate answers on Quora, but you might not have your questions answered straightaway.
Community / Blogs
Name (Handle):
Blog Name: Codeforces blogs
Name (Handle): Bruce Merry (bmerry)
Blog Name: Entropy always increases
Name (Handle): Przemysław Dębiak (Psyho)
Blog Name: Psyho's blog
Name (Handle): vexorian (vexorian)
Blog Name: vexorian's blog
Name (Handle): Ashar Fuadi (fushar)
Blog Name: Fushar's blog
Name (Handle): LiJie Chen (WJMZBMR)
Blog Name: WJMZBMR (Chinese)
Name (Handle): Shiang-Yun Yang (morris1028)
Blog Name: Morris' Blog (Chinese)
Community / Youtube and Livestreams
Name (Handle): Egor Kulikov (Egor)
Link: Youtube
Name (Handle): Adam Bardashevich (subscriber)
Link: Youtube
Name (Handle): Aleksandar Abas (Alex7)
Link: Youtube
Other Awesome Resources / Articles
- Subject: Overview of Programming Contests, by Przemysław Dębiak (Psyho)
- Subject: The 'science' of training in competitive programming - Codeforces, by Thanh Trung Nguyen (I_love_Hoang_Yen)
- Subject: If you ask me how to improve your algorithm competition skill, I will give you the link of this blog. - Codeforces, by Huang I-Wen (dreamoon)
Other Awesome Resources / FAQs
- Question: How can I become good at competitive programming? - Quora ... What is the best strategy to improve my skills in competitive programming in 2-3 months? - Quora ... What is a good 6 month plan to start and progress through competitive programming? - Quora
May 19, 2016
Open Courses
☆: ★★☆
Name: Reykjavik T-414-ÁFLV: A Competitive Programming Course
Description: An awesome course taught by Bjarki Ágúst Guðmundsson (SuprDewd). These lectures feature neat slides and a nice list of problems to practice.
Open Courses / Open Courses for Algorithms and Data Structures
☆: ★★★
Name: prakhar1989/awesome-courses#algorithms (⭐55k)
Description: A fantastic list of open courses offered by notable institutions (MIT, Stanford, UC Berkeley ... etc.).
Books / Open Courses for Algorithms and Data Structures
☆: ★★☆
Name: 算法竞赛入门经典 (Chinese), by 刘汝佳
Description: The Art of Algorithms and Programming Contests (English), 打下好基礎:程式設計與演算法競賽入門經典 (Chinese Traditional)
☆: ★★☆
Name: 算法竞赛入门经典——训练指南 (Chinese), by 刘汝佳, 陈锋
Description: 提升程式設計的解題思考力─國際演算法程式設計競賽訓練指南 (Chinese Traditional)
Books / Books for Algorithms
☆: ★★★
Name: Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Description: Also known as CLRS (taken from name initials), this book is often referred to as the "bible" for algorithms and data structures. It's one of the most popular textbooks for university algorithm courses. This book covered various algorithms and data structures in great detail. The writing is more rigorous and can be difficult to some.
Sites for Practice / Books for Mathematics
☆: ★★☆
Name: CodeChef
Description: CodeChef is a non-profit educational initiative of Directi. It's a global competitive programming platform and has a large community of programmers that helps students and professionals test and improve their coding skills. Its objective is to provide a platform for practice, competition and improvement for both students and professional software developers. Apart from this, it aims to reach out to students while they are young and inculcate a culture of programming in India.
☆: ★★☆
Name: Timus
Description: 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.
☆: ★☆☆
Name: HDU
Description: HDU is an online judge maintained by Hangzhou Dianzi University. It's home to many classic problems from the Chinese IOI scene.
☆: ★★☆
Name: HackerRank
Description: HackerRank is a company that focuses on competitive programming challenges for both consumers and businesses. HackerRank's programming challenges can be solved in a variety of programming languages and span multiple computer science domains.
☆: ★★☆
Name: Project Euler
Description: Project Euler features a stunning set of good math problems. It also hosts a forum where people can discuss.
☆: ★☆☆
Name: Hackerearth
Description: HackerEarth is a startup technology company based in Bangalore, India that provides recruitment solutions.
Sites for Practice / Problem Classifiers
☆: ★★★
Name: A2 Online Judge
Description: Mixed
☆: ★★★
Name: Problem Classifier
Description: SPOJ
☆: ★★☆
Name: UVa Online Judge
Description: CP Book
☆: ★★☆
Name: Lucky貓的 UVA(ACM)園地 (Chinese)
Description: UVa
Sites for Practice / Contest Calendars
☆: ★★☆
Name: Coding Calendar (Android App)
Description:
☆: ★★☆
Name: Coder's Calendar (⭐340): Android App, Chrome Extension, Firefox Add-on
Description:
Feb 17, 2016
Community / Quora
Competitive Programmers: Miguel Oliveira (mogers)
Competitive Programmers: Bohdan Pryshchenko (I_love_Tanya_Romanova)
Competitive Programmers: Cosmin Negruseri