https://github.com/chrisvilches/algorithms
Solutions for competitive programming problems in various online judges such as Kattis, SPOJ, URI Online Judge, etc.
https://github.com/chrisvilches/algorithms
acm-icpc algorithms atcoder beecrowd codechef codeforces competitive-programming data-structures kattis kattis-solutions spoj uva uva-solutions
Last synced: 28 days ago
JSON representation
Solutions for competitive programming problems in various online judges such as Kattis, SPOJ, URI Online Judge, etc.
- Host: GitHub
- URL: https://github.com/chrisvilches/algorithms
- Owner: ChrisVilches
- Created: 2021-10-04T16:05:41.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-14T13:31:12.000Z (12 months ago)
- Last Synced: 2024-11-14T14:32:15.595Z (12 months ago)
- Topics: acm-icpc, algorithms, atcoder, beecrowd, codechef, codeforces, competitive-programming, data-structures, kattis, kattis-solutions, spoj, uva, uva-solutions
- Language: C++
- Homepage:
- Size: 942 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Algorithms
## Index
*Note: This index is not exhaustive.*
### Strings
Trie
* [kattis/bing.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bing.cpp)
* [kattis/phonelist.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/phonelist.cpp)
* [leetcode/implement-trie-prefix-tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/implement-trie-prefix-tree.cpp)
* [uva/12506-shortest_names.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12506-shortest_names.cpp)
* [uva/12526-cellphone_typing.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12526-cellphone_typing.cpp)
Suffix Array
* [kattis/stringmultimatching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/stringmultimatching.cpp)
* [urionlinejudge/3018-gluing_pictures.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3018-gluing_pictures.cpp)
Suffix Automaton
* [spoj/DISUBSTR-distinct_substrings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/DISUBSTR-distinct_substrings.cpp)
* [spoj/LCS-longest_common_substring.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/LCS-longest_common_substring.cpp)
* [urionlinejudge/3018-gluing_pictures_suffix_automaton.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3018-gluing_pictures_suffix_automaton.cpp)
* [uva/10679-i_love_strings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10679-i_love_strings.cpp)
KMP
* [spoj/NAJPF-pattern_find.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/NAJPF-pattern_find.cpp)
### Segment Tree, Fenwick Tree
Segment Tree
* [atcoder/D-flat_subsequence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/D-flat_subsequence.cpp)
* [codeforces/domino_principle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/domino_principle.cpp)
* [codeforces/pillars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/pillars.cpp)
* [cses/hotel_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/hotel_queries.cpp)
* [kattis/antimatterrain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/antimatterrain.cpp)
* [kattis/mountainouslandscape.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mountainouslandscape.cpp)
* [kattis/supercomputer.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/supercomputer.cpp)
* [leetcode/container-with-most-water.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/container-with-most-water.cpp)
* [leetcode/fruits-into-baskets-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/fruits-into-baskets-iii.cpp)
* [leetcode/jump-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game.cpp)
* [leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp)
* [leetcode/maximum-earnings-from-taxi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-earnings-from-taxi.cpp)
* [leetcode/next-greater-element-iv.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/next-greater-element-iv.cpp)
* [leetcode/russian-doll-envelopes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/russian-doll-envelopes.cpp)
* [spoj/FREQUENT-frequent_values.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/FREQUENT-frequent_values.cpp)
* [spoj/HORRIBLE-horrible_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HORRIBLE-horrible_queries.cpp)
* [spoj/RMQSQ-range_minimum_query.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RMQSQ-range_minimum_query.cpp)
* [urionlinejudge/1477-man_elephant_and_mouse.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1477-man_elephant_and_mouse.cpp)
* [urionlinejudge/1496-go_up_the_ultras.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1496-go_up_the_ultras.cpp)
* [urionlinejudge/1969-generations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1969-generations.cpp)
* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)
* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)
* [urionlinejudge/2531-shopping_in_fdi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2531-shopping_in_fdi.cpp)
* [urionlinejudge/2655-dangerous_trail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2655-dangerous_trail.cpp)
* [urionlinejudge/2700-fundraising.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2700-fundraising.cpp)
* [urionlinejudge/3014-cut_inequality_down_online.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down_online.cpp)
* [urionlinejudge/3021-jumping_grasshopper.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3021-jumping_grasshopper.cpp)
* [uva/12532-interval_product.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12532-interval_product.cpp)
Segment Tree + Lazy Propagation
* [cses/polynomial_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/polynomial_queries.cpp)
* [cses/range_updates_and_sums.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/range_updates_and_sums.cpp)
* [dmoj/IOI14-wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/dmoj/IOI14-wall.cpp)
* [kattis/queryonarray.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/queryonarray.cpp)
* [leetcode/falling-squares.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/falling-squares.cpp)
* [spoj/HORRIBLE-horrible_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HORRIBLE-horrible_queries.cpp)
* [urionlinejudge/1477-man_elephant_and_mouse.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1477-man_elephant_and_mouse.cpp)
BIT (Fenwick Tree)
* [acmicpc.net/17703-dragon_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/acmicpc.net/17703-dragon_2.cpp)
* [codechef/FLYMODE.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/FLYMODE.cpp)
* [codechef/LAZER.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LAZER.cpp)
* [codeforces/excellent_views.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/excellent_views.cpp)
* [codeforces/geometers_anonymous_club.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/geometers_anonymous_club.cpp)
* [cses/intersection_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/intersection_points.cpp)
* [kattis/bridgebuilding.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bridgebuilding.cpp)
* [leetcode/distribute-elements-into-two-arrays-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/distribute-elements-into-two-arrays-ii.cpp)
* [leetcode/divide-an-array-into-subarrays-with-minimum-cost-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/divide-an-array-into-subarrays-with-minimum-cost-ii.cpp)
* [spoj/ADARAINB-ada_and_rain_ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADARAINB-ada_and_rain_ii.cpp)
* [spoj/HAYBALE-haybale_stacking.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HAYBALE-haybale_stacking.cpp)
* [spoj/HORRIBLE-horrible_queries_BIT.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HORRIBLE-horrible_queries_BIT.cpp)
* [urionlinejudge/1856-aryas_death_list.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1856-aryas_death_list.cpp)
* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)
* [urionlinejudge/2792-golnaldinho.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2792-golnaldinho.cpp)
* [urionlinejudge/3359-ancient_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers.cpp)
Merge Sort Tree
* [spoj/KQUERY-kquery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/KQUERY-kquery.cpp)
2D Segment Tree
* [cses/forest_queries_ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/forest_queries_ii.cpp)
* [urionlinejudge/1863-ramsays_counterattack.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1863-ramsays_counterattack.cpp)
### Geometry
Radial Sweep (and Polar Sort)
* [acmicpc.net/17703-dragon_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/acmicpc.net/17703-dragon_2.cpp)
* [codechef/CNVX4HUL.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CNVX4HUL.cpp)
* [codechef/REDBLUE.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/REDBLUE.cpp)
* [codeforces/disjoint_triangles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/disjoint_triangles.cpp)
* [codeforces/geometers_anonymous_club.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/geometers_anonymous_club.cpp)
* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)
* [kattis/leylines.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/leylines.cpp)
* [kattis/maxcolinear.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maxcolinear.cpp)
* [kattis/oil2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oil2.cpp)
* [kattis/oldschooldays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oldschooldays.cpp)
* [kattis/single.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/single.cpp)
* [kattis/spin.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/spin.cpp)
* [leetcode/max-points-on-a-line.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/max-points-on-a-line.cpp)
* [leetcode/maximum-number-of-visible-points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-number-of-visible-points.cpp)
* [spoj/ADAKOHL-ada_and_kohlrabi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADAKOHL-ada_and_kohlrabi.cpp)
* [spoj/ADAPICK-ada_and_cucumber.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADAPICK-ada_and_cucumber.cpp)
* [spoj/BLMIRANA-mayonnaise_arrow.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BLMIRANA-mayonnaise_arrow.cpp)
* [spoj/IOIBOUND-boundary_2003.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/IOIBOUND-boundary_2003.cpp)
* [spoj/SPOINTS-separate_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/SPOINTS-separate_points.cpp)
* [spoj/TAP2013F-flowers_of_babylon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/TAP2013F-flowers_of_babylon.cpp)
* [szkopul/2018-stone.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/szkopul/2018-stone.cpp)
* [urionlinejudge/1108-towers_for_mobile_telephony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1108-towers_for_mobile_telephony.cpp)
* [urionlinejudge/1268-mission_impossible.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1268-mission_impossible.cpp)
* [urionlinejudge/1336-garden_fence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1336-garden_fence.cpp)
* [urionlinejudge/1497-hide_and_seek_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1497-hide_and_seek_2.cpp)
* [urionlinejudge/1613-goemon_is_in_trouble.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1613-goemon_is_in_trouble.cpp)
* [urionlinejudge/3013-build_the_perfect_house.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3013-build_the_perfect_house.cpp)
* [urionlinejudge/3015-dazzling_stars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3015-dazzling_stars.cpp)
* [urionlinejudge/3359-ancient_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers.cpp)
Convex Hull
* [kattis/convexhull.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/convexhull.cpp)
* [kattis/fasterthanlight.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fasterthanlight.cpp)
* [kattis/fence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fence.cpp)
* [kattis/forestofcelery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forestofcelery.cpp)
* [kattis/largesttriangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/largesttriangle.cpp)
* [kattis/mountainouslandscape.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mountainouslandscape.cpp)
* [spoj/BSHEEP-build_the_fence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BSHEEP-build_the_fence.cpp)
* [urionlinejudge/1315-not_too_convex_hull_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1315-not_too_convex_hull_2.cpp)
* [urionlinejudge/1464-onion_layers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1464-onion_layers.cpp)
* [urionlinejudge/2541-ingrest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2541-ingrest.cpp)
* [urionlinejudge/3015-dazzling_stars_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3015-dazzling_stars_2.cpp)
* [uva/12307-smallest_enclosing_rectangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12307-smallest_enclosing_rectangle.cpp)
Sweep Line
* [codechef/LAZER.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LAZER.cpp)
* [codechef/LIGHT.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LIGHT.cpp)
* [codechef/TOWCNT.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/TOWCNT.cpp)
* [cses/intersection_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/intersection_points.cpp)
* [kattis/antimatterrain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/antimatterrain.cpp)
* [kattis/arable.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/arable.cpp)
* [kattis/directingrainfall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/directingrainfall.cpp)
* [kattis/pinball.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pinball.cpp)
* [kattis/polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/polygon.cpp)
* [kattis/rectilinear.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rectilinear.cpp)
* [kattis/unrealestate.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/unrealestate.cpp)
* [kattis/visual.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/visual.cpp)
* [leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp)
* [leetcode/perfect-rectangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/perfect-rectangle.cpp)
* [leetcode/separate-squares-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/separate-squares-ii.cpp)
* [leetcode/the-skyline-problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/the-skyline-problem.cpp)
* [spoj/ADARAINB-ada_and_rain_ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADARAINB-ada_and_rain_ii.cpp)
* [spoj/RAIN1-november_rain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RAIN1-november_rain.cpp)
* [urionlinejudge/1468-balloon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1468-balloon.cpp)
* [urionlinejudge/1748-fence_the_vegetables.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1748-fence_the_vegetables.cpp)
* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)
* [urionlinejudge/2043-high_mountains_faster.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2043-high_mountains_faster.cpp)
* [urionlinejudge/2043-high_mountains.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2043-high_mountains.cpp)
Minkowski Sum
* [codeforces/gears.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/gears.cpp)
* [codeforces/geometers_anonymous_club.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/geometers_anonymous_club.cpp)
* [codeforces/mogohurea_idol.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/mogohurea_idol.cpp)
* [leetcode/circle-and-rectangle-overlapping.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/circle-and-rectangle-overlapping.cpp)
* [timus/1894-nonflying_weather.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/timus/1894-nonflying_weather.cpp)
* [urionlinejudge/3448-gravitational_wave_detector.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3448-gravitational_wave_detector.cpp)
Quadrilaterals
* [codechef/CNVX4HUL.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CNVX4HUL.cpp)
* [kattis/oldschooldays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oldschooldays.cpp)
* [urionlinejudge/3359-ancient_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers.cpp)
Segment to Segment Distance
* [urionlinejudge/1223-toboggan_of_marbles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1223-toboggan_of_marbles.cpp)
* [urionlinejudge/1844-the_deathly_hallows.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1844-the_deathly_hallows.cpp)
Circle & Segment Intersection
* [codeforces/cornering_at_poles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cornering_at_poles.cpp)
* [leetcode/check-if-the-rectangle-corner-is-reachable.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/check-if-the-rectangle-corner-is-reachable.cpp)
Tangents & Arcs
* [codeforces/cornering_at_poles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cornering_at_poles.cpp)
* [kattis/fruitslicer.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fruitslicer.cpp)
* [spoj/BLMIRINA-archery_training.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BLMIRINA-archery_training.cpp)
* [urionlinejudge/1268-mission_impossible.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1268-mission_impossible.cpp)
* [urionlinejudge/1646-forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1646-forest.cpp)
* [urionlinejudge/3013-build_the_perfect_house.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3013-build_the_perfect_house.cpp)
Polygon Tangents
* [kattis/spin.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/spin.cpp)
Geometry with Dynamic Programming
* [codeforces/impenetrable_wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/impenetrable_wall.cpp)
* [kattis/beautifulbridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/beautifulbridges.cpp)
* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)
* [kattis/trimmingpolygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/trimmingpolygons.cpp)
* [spoj/MPOLY-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MPOLY-polygon.cpp)
* [urionlinejudge/1315-not_too_convex_hull_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1315-not_too_convex_hull_2.cpp)
* [urionlinejudge/2665-hipercampo.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2665-hipercampo.cpp)
* [urionlinejudge/2695-arranging_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2695-arranging_tiles.cpp)
* [urionlinejudge/3064-elastico.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3064-elastico.cpp)
Convex Polygons + Two-Pointers
* [atcoder/B-longest_segment.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/B-longest_segment.cpp)
* [codeforces/new_year_and_cake.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/new_year_and_cake.cpp)
* [codeforces/very_simple_problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/very_simple_problem.cpp)
* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)
* [kattis/fasterthanlight.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fasterthanlight.cpp)
* [kattis/forestofcelery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forestofcelery.cpp)
* [kattis/largesttriangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/largesttriangle.cpp)
* [urionlinejudge/2015-cake_cut.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2015-cake_cut.cpp)
* [urionlinejudge/2695-arranging_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2695-arranging_tiles.cpp)
* [urionlinejudge/2904-building_a_field.go](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2904-building_a_field.go)
* [urionlinejudge/2907-escape_polygon_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2907-escape_polygon_2.cpp)
* [uva/12307-smallest_enclosing_rectangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12307-smallest_enclosing_rectangle.cpp)
Concave Polygons
* [kattis/airport.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/airport.cpp)
* [kattis/arable.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/arable.cpp)
* [kattis/biometrics.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/biometrics.cpp)
* [kattis/cookiecutter.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cookiecutter.cpp)
* [kattis/crane.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/crane.cpp)
* [kattis/cuttingpolygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cuttingpolygon.cpp)
* [kattis/floatingpoints.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/floatingpoints.cpp)
* [kattis/forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forest.cpp)
* [kattis/maptiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maptiles.cpp)
* [kattis/pollution.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pollution.cpp)
* [kattis/polygonarea.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/polygonarea.cpp)
* [kattis/problematicpolygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/problematicpolygons.cpp)
* [kattis/puzzle2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/puzzle2.cpp)
* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)
* [urionlinejudge/3361-cyclists_versus_clouds.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3361-cyclists_versus_clouds.cpp)
Point Inside Polygon
* [atcoder/G-polygon_and_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/G-polygon_and_points.cpp)
* [codeforces/mogohurea_idol.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/mogohurea_idol.cpp)
* [kattis/domes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/domes.cpp)
* [kattis/icefloes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/icefloes.cpp)
* [kattis/maptiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maptiles.cpp)
* [kattis/pointinpolygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pointinpolygon.cpp)
* [kattis/problematicpolygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/problematicpolygons.cpp)
* [kattis/spin.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/spin.cpp)
* [spoj/INOROUT-inside_or_outside.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/INOROUT-inside_or_outside.cpp)
* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)
* [urionlinejudge/3448-gravitational_wave_detector.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3448-gravitational_wave_detector.cpp)
Polygon Intersection
* [aizu/CGL_7_H-intersection_of_a_circle_and_a_polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/aizu/CGL_7_H-intersection_of_a_circle_and_a_polygon.cpp)
* [kattis/asteroids.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/asteroids.cpp)
* [kattis/domes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/domes.cpp)
* [kattis/forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forest.cpp)
* [kattis/hiddencamera.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/hiddencamera.cpp)
* [kattis/puzzle2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/puzzle2.cpp)
* [uva/137-polygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/137-polygons.cpp)
Half-Planes Intersection (Finite Area)
* [aizu/1267-how_i_mathematician_wonder_what_you_are.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/aizu/1267-how_i_mathematician_wonder_what_you_are.cpp)
* [codechef/CHN02.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CHN02.cpp)
* [kattis/artappreciation.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/artappreciation.cpp)
* [kattis/domes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/domes.cpp)
Rectangle-Rectangle Intersection
* [kattis/visual.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/visual.cpp)
Simple Polygon Detection
* [kattis/polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/polygon.cpp)
Misc
* [aizu/CGL_1_B-reflection.go](https://github.com/ChrisVilches/Algorithms/blob/main/aizu/CGL_1_B-reflection.go)
* [codechef/count_the_squares.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/count_the_squares.cpp)
* [kattis/artur.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/artur.cpp)
* [kattis/carpet.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/carpet.cpp)
* [kattis/cheese_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cheese_2.cpp)
* [kattis/convexpolygonarea.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/convexpolygonarea.cpp)
* [kattis/countingtriangles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/countingtriangles.cpp)
* [kattis/dormroomdivide.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/dormroomdivide.cpp)
* [kattis/money.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/money.cpp)
* [kattis/segmentintersection.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/segmentintersection.cpp)
* [kattis/undetected.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/undetected.cpp)
* [leetcode/count-lattice-points-inside-a-circle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/count-lattice-points-inside-a-circle.cpp)
* [leetcode/minimize-manhattan-distances.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/minimize-manhattan-distances.cpp)
* [leetcode/valid-square.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/valid-square.cpp)
* [matcomgrader/O-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/O-polygon.cpp)
* [spoj/AXIS-axis_of_symmetry.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/AXIS-axis_of_symmetry.cpp)
* [spoj/PIR-pyramids.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/PIR-pyramids.cpp)
* [urionlinejudge/1102-deadly_atack.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1102-deadly_atack.cpp)
* [urionlinejudge/1124-elevator.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1124-elevator.cpp)
* [urionlinejudge/1295-the_closest_pair_problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1295-the_closest_pair_problem.cpp)
* [urionlinejudge/1378-isosceles_triangles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1378-isosceles_triangles.cpp)
* [urionlinejudge/1455-icpc_finals.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1455-icpc_finals.cpp)
* [urionlinejudge/1665-decorate_the_wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1665-decorate_the_wall.cpp)
* [urionlinejudge/1991-factory_of_bridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1991-factory_of_bridges.cpp)
* [urionlinejudge/2083-on_the_side_of_the_road.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2083-on_the_side_of_the_road.cpp)
* [urionlinejudge/2840-balloon++.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2840-balloon++.cpp)
* [uva/858-berry_picking.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/858-berry_picking.cpp)
### Graphs
BFS, DFS
* [codeforces/maze_in_bolt.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/maze_in_bolt.cpp)
* [kattis/fontan.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fontan.cpp)
* [kattis/keyboard.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/keyboard.cpp)
* [kattis/moneymatters.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/moneymatters.cpp)
* [kattis/robotmaze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/robotmaze.cpp)
* [kattis/secretchamber.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/secretchamber.cpp)
* [kattis/wheresmywaterfall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/wheresmywaterfall.cpp)
* [leetcode/balanced-binary-tree.js](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/balanced-binary-tree.js)
* [leetcode/detonate-the-maximum-bombs.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/detonate-the-maximum-bombs.cpp)
* [leetcode/dungeon-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/dungeon-game.cpp)
* [leetcode/escape-the-spreading-fire.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/escape-the-spreading-fire.cpp)
* [leetcode/flood-fill.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/flood-fill.cpp)
* [leetcode/jump-game-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-iii.cpp)
* [leetcode/jump-game-iv.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-iv.cpp)
* [leetcode/map-of-highest-peak.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/map-of-highest-peak.cpp)
* [leetcode/max-area-of-island.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/max-area-of-island.cpp)
* [leetcode/minimum-moves-to-move-a-box-to-their-target-location.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/minimum-moves-to-move-a-box-to-their-target-location.cpp)
* [leetcode/number-of-islands.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/number-of-islands.cpp)
* [leetcode/number-of-provinces.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/number-of-provinces.cpp)
* [leetcode/remove-invalid-parentheses.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/remove-invalid-parentheses.cpp)
* [leetcode/shortest-path-in-a-grid-with-obstacles-elimination.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/shortest-path-in-a-grid-with-obstacles-elimination.cpp)
* [leetcode/swim-in-rising-water.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/swim-in-rising-water.cpp)
* [leetcode/symmetric-tree.rs](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/symmetric-tree.rs)
* [leetcode/trapping-rain-water-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/trapping-rain-water-ii.cpp)
* [leetcode/unique-paths-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/unique-paths-iii.cpp)
* [leetcode/water-and-jug-problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/water-and-jug-problem.cpp)
* [spoj/BITMAP-bitmap.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BITMAP-bitmap.cpp)
* [spoj/BUGLIFE-a_bugs_life.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BUGLIFE-a_bugs_life.cpp)
* [spoj/CLEANRBT-cleaning_robot.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/CLEANRBT-cleaning_robot.cpp)
* [spoj/CTOI09_1-ioi2009_mecho.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/CTOI09_1-ioi2009_mecho.cpp)
* [spoj/MAKEMAZE-validate_the_maze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MAKEMAZE-validate_the_maze.cpp)
* [urionlinejudge/1082-connected_components.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1082-connected_components.cpp)
* [urionlinejudge/1100-knight_moves.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1100-knight_moves.cpp)
* [urionlinejudge/3361-cyclists_versus_clouds.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3361-cyclists_versus_clouds.cpp)
* [urionlinejudge/3364-fields_division.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3364-fields_division.cpp)
* [uva/1103-ancient_messages.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/1103-ancient_messages.cpp)
* [uva/13011-height_map.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/13011-height_map.cpp)
Bipartite Matching, Max Flow, Min-Cut
* [codeforces/halting_wolf_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/halting_wolf_dinic.cpp)
* [codeforces/halting_wolf.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/halting_wolf.cpp)
* [kattis/bookclub.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bookclub.cpp)
* [kattis/escapeplan.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/escapeplan.cpp)
* [kattis/jupiter.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/jupiter.cpp)
* [kattis/maxflow_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maxflow_dinic.cpp)
* [kattis/maxflow.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maxflow.cpp)
* [kattis/mincut.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mincut.cpp)
* [kattis/piano.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/piano.cpp)
* [urionlinejudge/1299-game_of_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1299-game_of_tiles.cpp)
* [urionlinejudge/1362-my_tshirt_suits_me_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1362-my_tshirt_suits_me_dinic.cpp)
* [urionlinejudge/1362-my_tshirt_suits_me.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1362-my_tshirt_suits_me.cpp)
* [urionlinejudge/1490-attacking_rooks.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1490-attacking_rooks.cpp)
* [urionlinejudge/2014-blood_groups.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2014-blood_groups.cpp)
* [urionlinejudge/2705-keep_it_covered_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2705-keep_it_covered_2.cpp)
* [urionlinejudge/2705-keep_it_covered_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2705-keep_it_covered_dinic.cpp)
* [urionlinejudge/2705-keep_it_covered.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2705-keep_it_covered.cpp)
* [urionlinejudge/3012-algorithm_teaching_hopcroft_karp.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3012-algorithm_teaching_hopcroft_karp.cpp)
* [urionlinejudge/3012-algorithm_teaching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3012-algorithm_teaching.cpp)
* [uva/10330-power_transmission.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10330-power_transmission.cpp)
* [uva/11167-monkeys_in_the_emei_mountain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11167-monkeys_in_the_emei_mountain.cpp)
Minimum Cost Flow
* [cses/parcel_delivery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/parcel_delivery.cpp)
* [cses/task_assignment.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/task_assignment.cpp)
* [kattis/catering.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/catering.cpp)
* [kattis/mincostmaxflow.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mincostmaxflow.cpp)
Dijkstra
* [codeforces/cornering_at_poles_dijkstra.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cornering_at_poles_dijkstra.cpp)
* [kattis/millionairemadness.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/millionairemadness.cpp)
* [kattis/shortestpath1.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/shortestpath1.cpp)
* [urionlinejudge/1370-regatta_of_scientists.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1370-regatta_of_scientists.cpp)
* [uva/10986-sending_email.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10986-sending_email.cpp)
* [uva/11833-route_change.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11833-route_change.cpp)
* [uva/13010-galactic_taxes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/13010-galactic_taxes.cpp)
Bellman-Ford
* [uva/558-wormholes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/558-wormholes.cpp)
Topological Sort
* [kattis/artur.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/artur.cpp)
* [kattis/pickupsticks.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pickupsticks.cpp)
* [leetcode/build-a-matrix-with-conditions.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/build-a-matrix-with-conditions.cpp)
Minimum Dominating Set
* [kattis/socialadvertising.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/socialadvertising.cpp)
Hungarian Algorithm for Assignment Problem
* [urionlinejudge/3366-hamilton_the_musical.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3366-hamilton_the_musical.cpp)
### Dynamic Programming
Counting, Combinatorics, Math
* [codeforces/impenetrable_wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/impenetrable_wall.cpp)
* [codeforces/keylogger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/keylogger.cpp)
* [cses/array_description.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/array_description.cpp)
* [cses/counting_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/counting_towers.cpp)
* [cses/dice_combinations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/dice_combinations.cpp)
* [cses/rectangle_cutting.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/rectangle_cutting.cpp)
* [kattis/gigcombinatorics.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/gigcombinatorics.cpp)
* [kattis/honey.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/honey.cpp)
* [kattis/permutationdescent.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/permutationdescent.cpp)
* [kattis/tritiling.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/tritiling.cpp)
* [leetcode/dice-roll-simulation.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/dice-roll-simulation.cpp)
* [leetcode/profitable-schemes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/profitable-schemes.cpp)
* [leetcode/unique-paths-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/unique-paths-ii.cpp)
* [leetcode/unique-paths.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/unique-paths.cpp)
* [matcomgrader/H-round_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/H-round_table.cpp)
* [spoj/BADXOR-bad_xor.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BADXOR-bad_xor.cpp)
* [spoj/HANOI07-building_the_tower.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HANOI07-building_the_tower.cpp)
* [urionlinejudge/1319-hyperactive_girl.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1319-hyperactive_girl.cpp)
* [urionlinejudge/1493-disjoint_water_supply.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1493-disjoint_water_supply.cpp)
* [urionlinejudge/2009-just_a_bit_sorted.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2009-just_a_bit_sorted.cpp)
* [urionlinejudge/3017-fabricating_sculptures.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3017-fabricating_sculptures.cpp)
* [urionlinejudge/3020-improve_spam.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3020-improve_spam.cpp)
Maximization, Minimization
* [aizu/1164-tighten_up.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/aizu/1164-tighten_up.cpp)
* [atcoder/A-frog_1.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/A-frog_1.cpp)
* [atcoder/D-flat_subsequence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/D-flat_subsequence.cpp)
* [codeforces/boredom.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/boredom.cpp)
* [codeforces/domino_principle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/domino_principle.cpp)
* [codeforces/pillars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/pillars.cpp)
* [google/controlled_inflation.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/controlled_inflation.cpp)
* [google/moons_and_umbrellas.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/moons_and_umbrellas.cpp)
* [google/plates.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/plates.cpp)
* [kattis/3dprinter.go](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/3dprinter.go)
* [kattis/beautifulbridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/beautifulbridges.cpp)
* [kattis/centsavings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/centsavings.cpp)
* [kattis/coke.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/coke.cpp)
* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)
* [kattis/intervalcover.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/intervalcover.cpp)
* [kattis/narrowartgallery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/narrowartgallery.cpp)
* [kattis/nikola.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/nikola.cpp)
* [kattis/speedrun.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/speedrun.cpp)
* [kattis/stol.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/stol.cpp)
* [leetcode/burst-balloons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/burst-balloons.cpp)
* [leetcode/cherry-pickup.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/cherry-pickup.cpp)
* [leetcode/freedom-trail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/freedom-trail.cpp)
* [leetcode/house-robber-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/house-robber-iii.cpp)
* [leetcode/house-robber.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/house-robber.cpp)
* [leetcode/jump-game-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-ii.cpp)
* [leetcode/jump-game-v.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-v.cpp)
* [leetcode/jump-game-vi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-vi.cpp)
* [leetcode/maximal-square.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximal-square.cpp)
* [leetcode/maximum-earnings-from-taxi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-earnings-from-taxi.cpp)
* [leetcode/min-cost-climbing-stairs.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/min-cost-climbing-stairs.cpp)
* [leetcode/minimum-path-sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/minimum-path-sum.cpp)
* [leetcode/predict-the-winner.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/predict-the-winner.cpp)
* [leetcode/split-array-largest-sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/split-array-largest-sum.cpp)
* [leetcode/triangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/triangle.cpp)
* [spoj/BORW-black_or_white.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BORW-black_or_white.cpp)
* [spoj/COINS-bytelandian_gold_coins.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/COINS-bytelandian_gold_coins.cpp)
* [spoj/KNAPSACK-the_knapsack_problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/KNAPSACK-the_knapsack_problem.cpp)
* [spoj/MPOLY-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MPOLY-polygon.cpp)
* [spoj/ROCK-sweet_and_sour_rock.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ROCK-sweet_and_sour_rock.cpp)
* [spoj/THREECOL-threecoloring_of_binary_trees.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/THREECOL-threecoloring_of_binary_trees.cpp)
* [urionlinejudge/1315-not_too_convex_hull_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1315-not_too_convex_hull_2.cpp)
* [urionlinejudge/1863-ramsays_counterattack.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1863-ramsays_counterattack.cpp)
* [urionlinejudge/2008-exposing_corruption.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2008-exposing_corruption.cpp)
* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)
* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)
* [urionlinejudge/2665-hipercampo.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2665-hipercampo.cpp)
* [urionlinejudge/3023-leverage_mdt.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3023-leverage_mdt.cpp)
* [urionlinejudge/3064-elastico.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3064-elastico.cpp)
Probability, Games, Optimal Strategy
* [kattis/bachetsgame.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bachetsgame.cpp)
* [leetcode/can-i-win.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/can-i-win.cpp)
* [leetcode/divisor-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/divisor-game.cpp)
* [leetcode/frog-jump.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/frog-jump.cpp)
* [leetcode/odd-even-jump.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/odd-even-jump.cpp)
* [leetcode/regular-expression-matching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/regular-expression-matching.cpp)
* [leetcode/wildcard-matching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/wildcard-matching.cpp)
* [leetcode/word-break.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/word-break.cpp)
* [spoj/AE2A-dice.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/AE2A-dice.cpp)
* [urionlinejudge/3019-hold_or_continue.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3019-hold_or_continue.cpp)
### Binary Search, Ternary Search
Binary Search
* [atcoder/D-flat_subsequence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/D-flat_subsequence.cpp)
* [codeforces/domino_principle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/domino_principle.cpp)
* [codeforces/keylogger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/keylogger.cpp)
* [codeforces/pillars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/pillars.cpp)
* [kattis/bridgebuilding.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bridgebuilding.cpp)
* [kattis/cheese_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cheese_2.cpp)
* [kattis/cookiecutter.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cookiecutter.cpp)
* [kattis/dormroomdivide.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/dormroomdivide.cpp)
* [kattis/messenger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/messenger.cpp)
* [kattis/monk.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/monk.cpp)
* [kattis/mountainouslandscape.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mountainouslandscape.cpp)
* [kattis/rangers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rangers.cpp)
* [kattis/speed.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/speed.cpp)
* [kattis/stringmultimatching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/stringmultimatching.cpp)
* [leetcode/divide-an-array-into-subarrays-with-minimum-cost-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/divide-an-array-into-subarrays-with-minimum-cost-ii.cpp)
* [leetcode/dungeon-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/dungeon-game.cpp)
* [leetcode/find-first-and-last-position-of-element-in-sorted-array.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/find-first-and-last-position-of-element-in-sorted-array.cpp)
* [leetcode/find-peak-element.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/find-peak-element.cpp)
* [leetcode/maximize-the-minimum-powered-city.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximize-the-minimum-powered-city.cpp)
* [leetcode/median-of-two-sorted-arrays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/median-of-two-sorted-arrays.cpp)
* [leetcode/peak-index-in-a-mountain-array.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/peak-index-in-a-mountain-array.cpp)
* [leetcode/search-a-2d-matrix.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/search-a-2d-matrix.cpp)
* [leetcode/search-in-rotated-sorted-array.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/search-in-rotated-sorted-array.cpp)
* [leetcode/separate-squares-i.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/separate-squares-i.cpp)
* [leetcode/swim-in-rising-water.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/swim-in-rising-water.cpp)
* [spoj/AGGRCOW-aggressive_cows.kt](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/AGGRCOW-aggressive_cows.kt)
* [spoj/BBIN-busqueda_binaria.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BBIN-busqueda_binaria.cpp)
* [spoj/BBIN2-busqueda_binaria_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BBIN2-busqueda_binaria_2.cpp)
* [spoj/MATHLOVE-math_is_love.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MATHLOVE-math_is_love.cpp)
* [spoj/TAP2013F-flowers_of_babylon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/TAP2013F-flowers_of_babylon.cpp)
* [urionlinejudge/1108-towers_for_mobile_telephony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1108-towers_for_mobile_telephony.cpp)
* [urionlinejudge/1549-splitting_the_coke.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1549-splitting_the_coke.cpp)
* [urionlinejudge/1646-forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1646-forest.cpp)
* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)
* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)
* [urionlinejudge/2014-blood_groups.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2014-blood_groups.cpp)
* [urionlinejudge/2104-lasers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2104-lasers.cpp)
* [urionlinejudge/2695-arranging_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2695-arranging_tiles.cpp)
* [urionlinejudge/3013-build_the_perfect_house.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3013-build_the_perfect_house.cpp)
* [urionlinejudge/3018-gluing_pictures.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3018-gluing_pictures.cpp)
* [uva/11935-through_the_desert.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11935-through_the_desert.cpp)
Ternary Search
* [kattis/asteroids.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/asteroids.cpp)
* [kattis/euclideantsp.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/euclideantsp.cpp)
* [kattis/messenger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/messenger.cpp)
* [urionlinejudge/1294-the_largest_and_smallest_box.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1294-the_largest_and_smallest_box.cpp)
* [urionlinejudge/1991-factory_of_bridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1991-factory_of_bridges.cpp)
* [urionlinejudge/2015-cake_cut_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2015-cake_cut_2.cpp)
* [urionlinejudge/2517-pogro_challenge.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2517-pogro_challenge.cpp)
* [uva/13010-galactic_taxes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/13010-galactic_taxes.cpp)
### Trees
Tree Problems
* [google/chain_reactions.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/chain_reactions.cpp)
* [kattis/ceiling.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/ceiling.cpp)
* [kattis/floatingpoints.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/floatingpoints.cpp)
* [kattis/kitten.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/kitten.cpp)
* [leetcode/binary-tree-postorder-traversal.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/binary-tree-postorder-traversal.cpp)
* [leetcode/binary-tree-preorder-traversal.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/binary-tree-preorder-traversal.cpp)
* [leetcode/construct-quad-tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/construct-quad-tree.cpp)
* [leetcode/minimum-time-to-collect-all-apples-in-a-tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/minimum-time-to-collect-all-apples-in-a-tree.cpp)
* [spoj/PT07Y-is_it_a_tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/PT07Y-is_it_a_tree.cpp)
* [spoj/PT07Z-longest_path_in_a_tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/PT07Z-longest_path_in_a_tree.cpp)
* [spoj/THREECOL-threecoloring_of_binary_trees.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/THREECOL-threecoloring_of_binary_trees.cpp)
* [urionlinejudge/1135-ants_colony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1135-ants_colony.cpp)
* [urionlinejudge/1195-binary_search_tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1195-binary_search_tree.cpp)
* [urionlinejudge/1200-bst_operations_i.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1200-bst_operations_i.cpp)
* [urionlinejudge/1493-disjoint_water_supply.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1493-disjoint_water_supply.cpp)
* [urionlinejudge/3020-improve_spam.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3020-improve_spam.cpp)
Cycle Detection
* [kattis/pickupsticks.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pickupsticks.cpp)
* [leetcode/build-a-matrix-with-conditions.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/build-a-matrix-with-conditions.cpp)
### Other Data Structures & Algorithms
Fast Fourier Transform
* [spoj/POLYMUL-polynomial_multiplication.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/POLYMUL-polynomial_multiplication.cpp)
Union Find (+ Minimum Spanning Tree)
* [kattis/almostunionfind.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/almostunionfind.cpp)
* [kattis/cats.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cats.cpp)
* [kattis/icefloes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/icefloes.cpp)
* [kattis/islandhopping.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/islandhopping.cpp)
* [kattis/rangers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rangers.cpp)
* [kattis/rectilinear.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rectilinear.cpp)
* [kattis/treehouses.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/treehouses.cpp)
* [kattis/undetected.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/undetected.cpp)
* [kattis/unionfind.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/unionfind.cpp)
* [kattis/wheresmyinternet.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/wheresmyinternet.cpp)
* [leetcode/check-if-the-rectangle-corner-is-reachable.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/check-if-the-rectangle-corner-is-reachable.cpp)
* [spoj/ANTTT-the_ant.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ANTTT-the_ant.cpp)
* [urionlinejudge/1152-dark_roads.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1152-dark_roads.cpp)
* [urionlinejudge/1268-mission_impossible.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1268-mission_impossible.cpp)
* [urionlinejudge/1298-fix_the_maze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1298-fix_the_maze.cpp)
* [urionlinejudge/1468-balloon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1468-balloon.cpp)
* [urionlinejudge/1844-the_deathly_hallows.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1844-the_deathly_hallows.cpp)
* [urionlinejudge/3014-cut_inequality_down.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down.cpp)
Sparse Table
* [kattis/forestofcelery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forestofcelery.cpp)
* [leetcode/jump-game-v.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-v.cpp)
* [spoj/RMQSQ-range_minimum_query_sparse_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RMQSQ-range_minimum_query_sparse_table.cpp)
* [urionlinejudge/1496-go_up_the_ultras_sparse_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1496-go_up_the_ultras_sparse_table.cpp)
* [urionlinejudge/3014-cut_inequality_down_online.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down_online.cpp)
Prefix Sum
* [codeforces/keylogger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/keylogger.cpp)
* [codeforces/new_year_and_cake.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/new_year_and_cake.cpp)
* [cses/polynomial_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/polynomial_queries.cpp)
* [kattis/bridgebuilding.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bridgebuilding.cpp)
* [kattis/centsavings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/centsavings.cpp)
* [kattis/oldschooldays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oldschooldays.cpp)
* [kattis/queryonarray.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/queryonarray.cpp)
* [leetcode/number-of-ways-to-select-buildings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/number-of-ways-to-select-buildings.cpp)
* [spoj/CSUMQ-cumulative_sum_query.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/CSUMQ-cumulative_sum_query.cpp)
* [spoj/RANGESUM-range_sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RANGESUM-range_sum.cpp)
* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)
* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)
* [urionlinejudge/2015-cake_cut_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2015-cake_cut_2.cpp)
* [urionlinejudge/3014-cut_inequality_down_online.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down_online.cpp)
* [uva/10324-zeros_and_ones.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10324-zeros_and_ones.cpp)
* [uva/11833-route_change.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11833-route_change.cpp)
Lowest Common Ancestor
* [matcomgrader/O-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/O-polygon.cpp)
* [urionlinejudge/1135-ants_colony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1135-ants_colony.cpp)
Coordinate (or Arrays in General) Compression
* [codechef/FLYMODE.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/FLYMODE.cpp)
* [codechef/LAZER.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LAZER.cpp)
* [cses/intersection_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/intersection_points.cpp)
* [kattis/antimatterrain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/antimatterrain.cpp)
* [leetcode/escape-a-large-maze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/escape-a-large-maze.cpp)
* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)
* [urionlinejudge/2700-fundraising.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2700-fundraising.cpp)
Rope
* [kattis/joinstrings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/joinstrings.cpp)
Ordered Set
* [kattis/gcpc.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/gcpc.cpp)
* [urionlinejudge/3359-ancient_towers_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers_2.cpp)
Fast Exponentiation, Fast Fibonacci, Etc
* [spoj/MPOW-power_of_matrix.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MPOW-power_of_matrix.cpp)
* [urionlinejudge/1151-easy_fibonacci.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1151-easy_fibonacci.cpp)
* [urionlinejudge/1969-generations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1969-generations.cpp)
Modular Division
* [codechef/CNVX4HUL.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CNVX4HUL.cpp)
* [codeforces/cqxym_count_permutations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cqxym_count_permutations.cpp)
* [kattis/chineseremainder.rb](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/chineseremainder.rb)
* [matcomgrader/H-round_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/H-round_table.cpp)
Simpson's Integration
* [kattis/bottles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bottles.cpp)
* [kattis/flowers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/flowers.cpp)
* [urionlinejudge/1297-environment_protection.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1297-environment_protection.cpp)
Kadane's Algorithm (Maximum Subarray Problem)
* [kattis/purplerain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/purplerain.cpp)
* [leetcode/maximum-subarray.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-subarray.cpp)
* [spoj/MAXSUMSU-maximum_subset_sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MAXSUMSU-maximum_subset_sum.cpp)