22<p align =" center " >
33 C++ Competitive Programming Library
44</h1 >
5- <p align="center">
6- <a href="#about">About</a> •
7- <a href="#getting-started">Getting Started</a> •
8- <a href="#milestones">Milestones</a>
9- </p>
105</p >
116
127## About
@@ -32,73 +27,8 @@ From there you can:
32273 . Test against the provided test cases in ` test/ ` for your own algorithm development.
3328
3429> [ !NOTE]
35- > Additional instructions and support for importing the library and using the test cases is
36- > planned to be added in the future.
37-
38- ## Milestones
39-
40- As with every single one of my projects, this is still very much a work in progress. The following is a list
41- of goals I have for this project before I consider it to be complete, in no particular order:
42-
43- | # | Goal | Status |
44- | :-: | --------------------------------------------------------- | :----: |
45- | 1 | Refactor old code to match current standards | ⚠️ |
46- | 2 | Full test coverage | ⚠️ |
47- | 3 | Performance with supporting benchmarks | ⚠️ |
48- | 4 | Codebase Atomizer | ❌ |
49- | 5 | Full implementation of the CPH | ❌️ |
50-
51- A more detailed description of each goal can be found below:
52-
53- ### Refactor Old Code to Match Current Standards
54-
55- This is my longest standing project in terms of the initial creation date. As such, the earlier code does
56- not reflect my current standards. One of the current goals is to revise such code to improve quality.
57-
58- > [ !NOTE]
59- > I find the structure of the code in this repository to be quite volatile. I have probably re-written some
60- > of the algorithms 10+ times as this library tends to evolve as I become a better programmer.
61- > If something doesn't look quite right, it probably isn't.
62-
63- ### Full Test Coverage
64-
65- While this library is meant for competitive programming (where tests don’t carry over), it should still have
66- full test coverage — including tests derived from problems where I used components of this library to solve them.
67-
68- ### Performance with Supporting Benchmarks
69-
70- In the spirit of competitive programming, while solving the problem is the main goal, performance is also
71- a key component. Benchmarks should back up various design decisions when it comes to how I have chosen to
72- structure and implement various key algorithms and data structures.
73-
74- > [ !NOTE]
75- > While I do want 100% test coverage, I'm less concerned about benchmarks. Benchmarks will be added
76- > as I find them necessary to support design decisions.
77-
78- ### Codebase Atomizer
79-
80- The * Atomizer* is a tool used to break down the codebase into smaller, more manageable pieces, that can be
81- retrieved quickly. For example, if you want to use a specific function, say ` output_container ` to keep things
82- simple. You can use the * Atomizer* output to retrieve that specific function via a file lookup, ` output_container.cpp ` .
83- You can also use any supporting tool you want to paste that file buffer directly inline into your code. Rather than
84- opening the container header file and copying the specific lines from the file that you need. This will also work
85- with more complex algorithms that may require an additional data structure to function. For example, if you want to
86- use Kruskal's algorithm, you can use the * Atomizer* to retrieve the ` kruskal.cpp ` file which will include the
87- supporting ` DisjointSet ` class used within the algorithm. Again saving you from finding the specific lines of code
88- within the header file that you need.
89-
90- ### Full Implementation of the CPH (Competitive Programming Handbook)
91-
92- The [ * Competitive Programming Handbook* ] ( https://cses.fi/book/book.pdf ) by Antti Laaksonen is an awesome, all in one,
93- resource for everything competitive programming. It contains everything from compiling and reading input to sweep line
94- algorithms including convex hulls. Its an eventual goal of mine to fully implement all the algorithms outlined
95- in the book. This has the added benefit of an * complete* documentation source of all the algorithms in this
96- library. This is a long term goal and will likely take a while to complete.
97-
98- > [ !NOTE]
99- > This is my endgame for this project. When its completed I will consider this project * done* as so far
100- > as it will no longer be a major work in progress for me personally. I will still add things here and there
101- > and work on it when I'm compelled to do so but the core goals of this project will be officially complete.
30+ > As of late, this project has shifted focus toward library design over contest utility.
31+ > The copy-paste guarantee may no longer apply and various sections will have internal dependencies.
10232
10333## License
10434
0 commit comments