{"id":21368191,"url":"https://github.com/chrisvilches/algorithms","last_synced_at":"2025-10-08T20:50:20.261Z","repository":{"id":45405333,"uuid":"413493410","full_name":"ChrisVilches/Algorithms","owner":"ChrisVilches","description":"Solutions for competitive programming problems in various online judges such as Kattis, SPOJ, URI Online Judge, etc.","archived":false,"fork":false,"pushed_at":"2024-11-14T13:31:12.000Z","size":965,"stargazers_count":5,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-14T14:32:15.595Z","etag":null,"topics":["acm-icpc","algorithms","atcoder","beecrowd","codechef","codeforces","competitive-programming","data-structures","kattis","kattis-solutions","spoj","uva","uva-solutions"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChrisVilches.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-04T16:05:41.000Z","updated_at":"2024-11-14T13:31:17.000Z","dependencies_parsed_at":"2024-05-18T06:27:16.999Z","dependency_job_id":"4fda9621-9e44-415a-8875-92bd36c39167","html_url":"https://github.com/ChrisVilches/Algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisVilches%2FAlgorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisVilches%2FAlgorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisVilches%2FAlgorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChrisVilches%2FAlgorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChrisVilches","download_url":"https://codeload.github.com/ChrisVilches/Algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225858249,"owners_count":17535369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acm-icpc","algorithms","atcoder","beecrowd","codechef","codeforces","competitive-programming","data-structures","kattis","kattis-solutions","spoj","uva","uva-solutions"],"created_at":"2024-11-22T07:23:11.592Z","updated_at":"2025-10-08T20:50:20.255Z","avatar_url":"https://github.com/ChrisVilches.png","language":"C++","readme":"# Algorithms\n## Index\n*Note: This index is not exhaustive.*\n\n### Strings\n\nTrie\n\n* [kattis/bing.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bing.cpp)\n* [kattis/phonelist.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/phonelist.cpp)\n* [leetcode/implement-trie-prefix-tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/implement-trie-prefix-tree.cpp)\n* [uva/12506-shortest_names.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12506-shortest_names.cpp)\n* [uva/12526-cellphone_typing.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12526-cellphone_typing.cpp)\n\nSuffix Array\n\n* [kattis/stringmultimatching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/stringmultimatching.cpp)\n* [urionlinejudge/3018-gluing_pictures.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3018-gluing_pictures.cpp)\n\nSuffix Automaton\n\n* [spoj/DISUBSTR-distinct_substrings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/DISUBSTR-distinct_substrings.cpp)\n* [spoj/LCS-longest_common_substring.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/LCS-longest_common_substring.cpp)\n* [urionlinejudge/3018-gluing_pictures_suffix_automaton.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3018-gluing_pictures_suffix_automaton.cpp)\n* [uva/10679-i_love_strings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10679-i_love_strings.cpp)\n\nKMP\n\n* [spoj/NAJPF-pattern_find.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/NAJPF-pattern_find.cpp)\n\n\n### Segment Tree, Fenwick Tree\n\nSegment Tree\n\n* [atcoder/D-flat_subsequence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/D-flat_subsequence.cpp)\n* [codeforces/domino_principle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/domino_principle.cpp)\n* [codeforces/pillars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/pillars.cpp)\n* [cses/hotel_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/hotel_queries.cpp)\n* [kattis/antimatterrain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/antimatterrain.cpp)\n* [kattis/mountainouslandscape.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mountainouslandscape.cpp)\n* [kattis/supercomputer.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/supercomputer.cpp)\n* [leetcode/container-with-most-water.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/container-with-most-water.cpp)\n* [leetcode/fruits-into-baskets-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/fruits-into-baskets-iii.cpp)\n* [leetcode/jump-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game.cpp)\n* [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)\n* [leetcode/maximum-earnings-from-taxi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-earnings-from-taxi.cpp)\n* [leetcode/next-greater-element-iv.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/next-greater-element-iv.cpp)\n* [leetcode/russian-doll-envelopes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/russian-doll-envelopes.cpp)\n* [spoj/FREQUENT-frequent_values.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/FREQUENT-frequent_values.cpp)\n* [spoj/HORRIBLE-horrible_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HORRIBLE-horrible_queries.cpp)\n* [spoj/RMQSQ-range_minimum_query.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RMQSQ-range_minimum_query.cpp)\n* [urionlinejudge/1477-man_elephant_and_mouse.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1477-man_elephant_and_mouse.cpp)\n* [urionlinejudge/1496-go_up_the_ultras.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1496-go_up_the_ultras.cpp)\n* [urionlinejudge/1969-generations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1969-generations.cpp)\n* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)\n* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)\n* [urionlinejudge/2531-shopping_in_fdi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2531-shopping_in_fdi.cpp)\n* [urionlinejudge/2655-dangerous_trail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2655-dangerous_trail.cpp)\n* [urionlinejudge/2700-fundraising.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2700-fundraising.cpp)\n* [urionlinejudge/3014-cut_inequality_down_online.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down_online.cpp)\n* [urionlinejudge/3021-jumping_grasshopper.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3021-jumping_grasshopper.cpp)\n* [uva/12532-interval_product.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12532-interval_product.cpp)\n\nSegment Tree + Lazy Propagation\n\n* [cses/polynomial_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/polynomial_queries.cpp)\n* [cses/range_updates_and_sums.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/range_updates_and_sums.cpp)\n* [dmoj/IOI14-wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/dmoj/IOI14-wall.cpp)\n* [kattis/queryonarray.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/queryonarray.cpp)\n* [leetcode/falling-squares.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/falling-squares.cpp)\n* [spoj/HORRIBLE-horrible_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HORRIBLE-horrible_queries.cpp)\n* [urionlinejudge/1477-man_elephant_and_mouse.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1477-man_elephant_and_mouse.cpp)\n\nBIT (Fenwick Tree)\n\n* [acmicpc.net/17703-dragon_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/acmicpc.net/17703-dragon_2.cpp)\n* [codechef/FLYMODE.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/FLYMODE.cpp)\n* [codechef/LAZER.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LAZER.cpp)\n* [codeforces/excellent_views.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/excellent_views.cpp)\n* [codeforces/geometers_anonymous_club.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/geometers_anonymous_club.cpp)\n* [cses/intersection_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/intersection_points.cpp)\n* [kattis/bridgebuilding.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bridgebuilding.cpp)\n* [leetcode/distribute-elements-into-two-arrays-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/distribute-elements-into-two-arrays-ii.cpp)\n* [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)\n* [spoj/ADARAINB-ada_and_rain_ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADARAINB-ada_and_rain_ii.cpp)\n* [spoj/HAYBALE-haybale_stacking.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HAYBALE-haybale_stacking.cpp)\n* [spoj/HORRIBLE-horrible_queries_BIT.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HORRIBLE-horrible_queries_BIT.cpp)\n* [urionlinejudge/1856-aryas_death_list.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1856-aryas_death_list.cpp)\n* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)\n* [urionlinejudge/2792-golnaldinho.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2792-golnaldinho.cpp)\n* [urionlinejudge/3359-ancient_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers.cpp)\n\nMerge Sort Tree\n\n* [spoj/KQUERY-kquery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/KQUERY-kquery.cpp)\n\n2D Segment Tree\n\n* [cses/forest_queries_ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/forest_queries_ii.cpp)\n* [urionlinejudge/1863-ramsays_counterattack.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1863-ramsays_counterattack.cpp)\n\n\n### Geometry\n\nRadial Sweep (and Polar Sort)\n\n* [acmicpc.net/17703-dragon_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/acmicpc.net/17703-dragon_2.cpp)\n* [codechef/CNVX4HUL.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CNVX4HUL.cpp)\n* [codechef/REDBLUE.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/REDBLUE.cpp)\n* [codeforces/disjoint_triangles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/disjoint_triangles.cpp)\n* [codeforces/geometers_anonymous_club.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/geometers_anonymous_club.cpp)\n* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)\n* [kattis/leylines.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/leylines.cpp)\n* [kattis/maxcolinear.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maxcolinear.cpp)\n* [kattis/oil2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oil2.cpp)\n* [kattis/oldschooldays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oldschooldays.cpp)\n* [kattis/single.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/single.cpp)\n* [kattis/spin.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/spin.cpp)\n* [leetcode/max-points-on-a-line.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/max-points-on-a-line.cpp)\n* [leetcode/maximum-number-of-visible-points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-number-of-visible-points.cpp)\n* [spoj/ADAKOHL-ada_and_kohlrabi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADAKOHL-ada_and_kohlrabi.cpp)\n* [spoj/ADAPICK-ada_and_cucumber.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADAPICK-ada_and_cucumber.cpp)\n* [spoj/BLMIRANA-mayonnaise_arrow.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BLMIRANA-mayonnaise_arrow.cpp)\n* [spoj/IOIBOUND-boundary_2003.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/IOIBOUND-boundary_2003.cpp)\n* [spoj/SPOINTS-separate_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/SPOINTS-separate_points.cpp)\n* [spoj/TAP2013F-flowers_of_babylon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/TAP2013F-flowers_of_babylon.cpp)\n* [szkopul/2018-stone.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/szkopul/2018-stone.cpp)\n* [urionlinejudge/1108-towers_for_mobile_telephony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1108-towers_for_mobile_telephony.cpp)\n* [urionlinejudge/1268-mission_impossible.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1268-mission_impossible.cpp)\n* [urionlinejudge/1336-garden_fence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1336-garden_fence.cpp)\n* [urionlinejudge/1497-hide_and_seek_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1497-hide_and_seek_2.cpp)\n* [urionlinejudge/1613-goemon_is_in_trouble.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1613-goemon_is_in_trouble.cpp)\n* [urionlinejudge/3013-build_the_perfect_house.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3013-build_the_perfect_house.cpp)\n* [urionlinejudge/3015-dazzling_stars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3015-dazzling_stars.cpp)\n* [urionlinejudge/3359-ancient_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers.cpp)\n\nConvex Hull\n\n* [kattis/convexhull.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/convexhull.cpp)\n* [kattis/fasterthanlight.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fasterthanlight.cpp)\n* [kattis/fence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fence.cpp)\n* [kattis/forestofcelery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forestofcelery.cpp)\n* [kattis/largesttriangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/largesttriangle.cpp)\n* [kattis/mountainouslandscape.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mountainouslandscape.cpp)\n* [spoj/BSHEEP-build_the_fence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BSHEEP-build_the_fence.cpp)\n* [urionlinejudge/1315-not_too_convex_hull_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1315-not_too_convex_hull_2.cpp)\n* [urionlinejudge/1464-onion_layers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1464-onion_layers.cpp)\n* [urionlinejudge/2541-ingrest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2541-ingrest.cpp)\n* [urionlinejudge/3015-dazzling_stars_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3015-dazzling_stars_2.cpp)\n* [uva/12307-smallest_enclosing_rectangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12307-smallest_enclosing_rectangle.cpp)\n\nSweep Line\n\n* [codechef/LAZER.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LAZER.cpp)\n* [codechef/LIGHT.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LIGHT.cpp)\n* [codechef/TOWCNT.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/TOWCNT.cpp)\n* [cses/intersection_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/intersection_points.cpp)\n* [kattis/antimatterrain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/antimatterrain.cpp)\n* [kattis/arable.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/arable.cpp)\n* [kattis/directingrainfall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/directingrainfall.cpp)\n* [kattis/pinball.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pinball.cpp)\n* [kattis/polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/polygon.cpp)\n* [kattis/rectilinear.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rectilinear.cpp)\n* [kattis/unrealestate.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/unrealestate.cpp)\n* [kattis/visual.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/visual.cpp)\n* [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)\n* [leetcode/perfect-rectangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/perfect-rectangle.cpp)\n* [leetcode/separate-squares-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/separate-squares-ii.cpp)\n* [leetcode/the-skyline-problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/the-skyline-problem.cpp)\n* [spoj/ADARAINB-ada_and_rain_ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ADARAINB-ada_and_rain_ii.cpp)\n* [spoj/RAIN1-november_rain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RAIN1-november_rain.cpp)\n* [urionlinejudge/1468-balloon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1468-balloon.cpp)\n* [urionlinejudge/1748-fence_the_vegetables.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1748-fence_the_vegetables.cpp)\n* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)\n* [urionlinejudge/2043-high_mountains_faster.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2043-high_mountains_faster.cpp)\n* [urionlinejudge/2043-high_mountains.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2043-high_mountains.cpp)\n\nMinkowski Sum\n\n* [codeforces/gears.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/gears.cpp)\n* [codeforces/geometers_anonymous_club.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/geometers_anonymous_club.cpp)\n* [codeforces/mogohurea_idol.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/mogohurea_idol.cpp)\n* [leetcode/circle-and-rectangle-overlapping.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/circle-and-rectangle-overlapping.cpp)\n* [timus/1894-nonflying_weather.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/timus/1894-nonflying_weather.cpp)\n* [urionlinejudge/3448-gravitational_wave_detector.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3448-gravitational_wave_detector.cpp)\n\nQuadrilaterals\n\n* [codechef/CNVX4HUL.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CNVX4HUL.cpp)\n* [kattis/oldschooldays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oldschooldays.cpp)\n* [urionlinejudge/3359-ancient_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers.cpp)\n\nSegment to Segment Distance\n\n* [urionlinejudge/1223-toboggan_of_marbles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1223-toboggan_of_marbles.cpp)\n* [urionlinejudge/1844-the_deathly_hallows.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1844-the_deathly_hallows.cpp)\n\nCircle \u0026 Segment Intersection\n\n* [codeforces/cornering_at_poles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cornering_at_poles.cpp)\n* [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)\n\nTangents \u0026 Arcs\n\n* [codeforces/cornering_at_poles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cornering_at_poles.cpp)\n* [kattis/fruitslicer.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fruitslicer.cpp)\n* [spoj/BLMIRINA-archery_training.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BLMIRINA-archery_training.cpp)\n* [urionlinejudge/1268-mission_impossible.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1268-mission_impossible.cpp)\n* [urionlinejudge/1646-forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1646-forest.cpp)\n* [urionlinejudge/3013-build_the_perfect_house.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3013-build_the_perfect_house.cpp)\n\nPolygon Tangents\n\n* [kattis/spin.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/spin.cpp)\n\nGeometry with Dynamic Programming\n\n* [codeforces/impenetrable_wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/impenetrable_wall.cpp)\n* [kattis/beautifulbridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/beautifulbridges.cpp)\n* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)\n* [kattis/trimmingpolygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/trimmingpolygons.cpp)\n* [spoj/MPOLY-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MPOLY-polygon.cpp)\n* [urionlinejudge/1315-not_too_convex_hull_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1315-not_too_convex_hull_2.cpp)\n* [urionlinejudge/2665-hipercampo.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2665-hipercampo.cpp)\n* [urionlinejudge/2695-arranging_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2695-arranging_tiles.cpp)\n* [urionlinejudge/3064-elastico.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3064-elastico.cpp)\n\nConvex Polygons + Two-Pointers\n\n* [atcoder/B-longest_segment.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/B-longest_segment.cpp)\n* [codeforces/new_year_and_cake.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/new_year_and_cake.cpp)\n* [codeforces/very_simple_problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/very_simple_problem.cpp)\n* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)\n* [kattis/fasterthanlight.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fasterthanlight.cpp)\n* [kattis/forestofcelery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forestofcelery.cpp)\n* [kattis/largesttriangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/largesttriangle.cpp)\n* [urionlinejudge/2015-cake_cut.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2015-cake_cut.cpp)\n* [urionlinejudge/2695-arranging_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2695-arranging_tiles.cpp)\n* [urionlinejudge/2904-building_a_field.go](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2904-building_a_field.go)\n* [urionlinejudge/2907-escape_polygon_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2907-escape_polygon_2.cpp)\n* [uva/12307-smallest_enclosing_rectangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/12307-smallest_enclosing_rectangle.cpp)\n\nConcave Polygons\n\n* [kattis/airport.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/airport.cpp)\n* [kattis/arable.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/arable.cpp)\n* [kattis/biometrics.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/biometrics.cpp)\n* [kattis/cookiecutter.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cookiecutter.cpp)\n* [kattis/crane.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/crane.cpp)\n* [kattis/cuttingpolygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cuttingpolygon.cpp)\n* [kattis/floatingpoints.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/floatingpoints.cpp)\n* [kattis/forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forest.cpp)\n* [kattis/maptiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maptiles.cpp)\n* [kattis/pollution.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pollution.cpp)\n* [kattis/polygonarea.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/polygonarea.cpp)\n* [kattis/problematicpolygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/problematicpolygons.cpp)\n* [kattis/puzzle2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/puzzle2.cpp)\n* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)\n* [urionlinejudge/3361-cyclists_versus_clouds.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3361-cyclists_versus_clouds.cpp)\n\nPoint Inside Polygon\n\n* [atcoder/G-polygon_and_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/G-polygon_and_points.cpp)\n* [codeforces/mogohurea_idol.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/mogohurea_idol.cpp)\n* [kattis/domes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/domes.cpp)\n* [kattis/icefloes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/icefloes.cpp)\n* [kattis/maptiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maptiles.cpp)\n* [kattis/pointinpolygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pointinpolygon.cpp)\n* [kattis/problematicpolygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/problematicpolygons.cpp)\n* [kattis/spin.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/spin.cpp)\n* [spoj/INOROUT-inside_or_outside.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/INOROUT-inside_or_outside.cpp)\n* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)\n* [urionlinejudge/3448-gravitational_wave_detector.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3448-gravitational_wave_detector.cpp)\n\nPolygon Intersection\n\n* [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)\n* [kattis/asteroids.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/asteroids.cpp)\n* [kattis/domes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/domes.cpp)\n* [kattis/forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forest.cpp)\n* [kattis/hiddencamera.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/hiddencamera.cpp)\n* [kattis/puzzle2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/puzzle2.cpp)\n* [uva/137-polygons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/137-polygons.cpp)\n\nHalf-Planes Intersection (Finite Area)\n\n* [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)\n* [codechef/CHN02.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CHN02.cpp)\n* [kattis/artappreciation.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/artappreciation.cpp)\n* [kattis/domes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/domes.cpp)\n\nRectangle-Rectangle Intersection\n\n* [kattis/visual.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/visual.cpp)\n\nSimple Polygon Detection\n\n* [kattis/polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/polygon.cpp)\n\nMisc\n\n* [aizu/CGL_1_B-reflection.go](https://github.com/ChrisVilches/Algorithms/blob/main/aizu/CGL_1_B-reflection.go)\n* [codechef/count_the_squares.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/count_the_squares.cpp)\n* [kattis/artur.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/artur.cpp)\n* [kattis/carpet.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/carpet.cpp)\n* [kattis/cheese_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cheese_2.cpp)\n* [kattis/convexpolygonarea.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/convexpolygonarea.cpp)\n* [kattis/countingtriangles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/countingtriangles.cpp)\n* [kattis/dormroomdivide.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/dormroomdivide.cpp)\n* [kattis/money.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/money.cpp)\n* [kattis/segmentintersection.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/segmentintersection.cpp)\n* [kattis/undetected.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/undetected.cpp)\n* [leetcode/count-lattice-points-inside-a-circle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/count-lattice-points-inside-a-circle.cpp)\n* [leetcode/minimize-manhattan-distances.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/minimize-manhattan-distances.cpp)\n* [leetcode/valid-square.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/valid-square.cpp)\n* [matcomgrader/O-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/O-polygon.cpp)\n* [spoj/AXIS-axis_of_symmetry.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/AXIS-axis_of_symmetry.cpp)\n* [spoj/PIR-pyramids.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/PIR-pyramids.cpp)\n* [urionlinejudge/1102-deadly_atack.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1102-deadly_atack.cpp)\n* [urionlinejudge/1124-elevator.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1124-elevator.cpp)\n* [urionlinejudge/1295-the_closest_pair_problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1295-the_closest_pair_problem.cpp)\n* [urionlinejudge/1378-isosceles_triangles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1378-isosceles_triangles.cpp)\n* [urionlinejudge/1455-icpc_finals.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1455-icpc_finals.cpp)\n* [urionlinejudge/1665-decorate_the_wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1665-decorate_the_wall.cpp)\n* [urionlinejudge/1991-factory_of_bridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1991-factory_of_bridges.cpp)\n* [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)\n* [urionlinejudge/2840-balloon++.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2840-balloon++.cpp)\n* [uva/858-berry_picking.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/858-berry_picking.cpp)\n\n\n### Graphs\n\nBFS, DFS\n\n* [codeforces/maze_in_bolt.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/maze_in_bolt.cpp)\n* [kattis/fontan.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fontan.cpp)\n* [kattis/keyboard.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/keyboard.cpp)\n* [kattis/moneymatters.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/moneymatters.cpp)\n* [kattis/robotmaze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/robotmaze.cpp)\n* [kattis/secretchamber.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/secretchamber.cpp)\n* [kattis/wheresmywaterfall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/wheresmywaterfall.cpp)\n* [leetcode/balanced-binary-tree.js](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/balanced-binary-tree.js)\n* [leetcode/detonate-the-maximum-bombs.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/detonate-the-maximum-bombs.cpp)\n* [leetcode/dungeon-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/dungeon-game.cpp)\n* [leetcode/escape-the-spreading-fire.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/escape-the-spreading-fire.cpp)\n* [leetcode/flood-fill.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/flood-fill.cpp)\n* [leetcode/jump-game-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-iii.cpp)\n* [leetcode/jump-game-iv.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-iv.cpp)\n* [leetcode/map-of-highest-peak.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/map-of-highest-peak.cpp)\n* [leetcode/max-area-of-island.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/max-area-of-island.cpp)\n* [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)\n* [leetcode/number-of-islands.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/number-of-islands.cpp)\n* [leetcode/number-of-provinces.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/number-of-provinces.cpp)\n* [leetcode/remove-invalid-parentheses.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/remove-invalid-parentheses.cpp)\n* [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)\n* [leetcode/swim-in-rising-water.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/swim-in-rising-water.cpp)\n* [leetcode/symmetric-tree.rs](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/symmetric-tree.rs)\n* [leetcode/trapping-rain-water-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/trapping-rain-water-ii.cpp)\n* [leetcode/unique-paths-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/unique-paths-iii.cpp)\n* [leetcode/water-and-jug-problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/water-and-jug-problem.cpp)\n* [spoj/BITMAP-bitmap.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BITMAP-bitmap.cpp)\n* [spoj/BUGLIFE-a_bugs_life.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BUGLIFE-a_bugs_life.cpp)\n* [spoj/CLEANRBT-cleaning_robot.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/CLEANRBT-cleaning_robot.cpp)\n* [spoj/CTOI09_1-ioi2009_mecho.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/CTOI09_1-ioi2009_mecho.cpp)\n* [spoj/MAKEMAZE-validate_the_maze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MAKEMAZE-validate_the_maze.cpp)\n* [urionlinejudge/1082-connected_components.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1082-connected_components.cpp)\n* [urionlinejudge/1100-knight_moves.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1100-knight_moves.cpp)\n* [urionlinejudge/3361-cyclists_versus_clouds.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3361-cyclists_versus_clouds.cpp)\n* [urionlinejudge/3364-fields_division.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3364-fields_division.cpp)\n* [uva/1103-ancient_messages.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/1103-ancient_messages.cpp)\n* [uva/13011-height_map.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/13011-height_map.cpp)\n\nBipartite Matching, Max Flow, Min-Cut\n\n* [codeforces/halting_wolf_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/halting_wolf_dinic.cpp)\n* [codeforces/halting_wolf.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/halting_wolf.cpp)\n* [kattis/bookclub.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bookclub.cpp)\n* [kattis/escapeplan.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/escapeplan.cpp)\n* [kattis/jupiter.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/jupiter.cpp)\n* [kattis/maxflow_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maxflow_dinic.cpp)\n* [kattis/maxflow.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/maxflow.cpp)\n* [kattis/mincut.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mincut.cpp)\n* [kattis/piano.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/piano.cpp)\n* [urionlinejudge/1299-game_of_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1299-game_of_tiles.cpp)\n* [urionlinejudge/1362-my_tshirt_suits_me_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1362-my_tshirt_suits_me_dinic.cpp)\n* [urionlinejudge/1362-my_tshirt_suits_me.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1362-my_tshirt_suits_me.cpp)\n* [urionlinejudge/1490-attacking_rooks.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1490-attacking_rooks.cpp)\n* [urionlinejudge/2014-blood_groups.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2014-blood_groups.cpp)\n* [urionlinejudge/2705-keep_it_covered_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2705-keep_it_covered_2.cpp)\n* [urionlinejudge/2705-keep_it_covered_dinic.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2705-keep_it_covered_dinic.cpp)\n* [urionlinejudge/2705-keep_it_covered.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2705-keep_it_covered.cpp)\n* [urionlinejudge/3012-algorithm_teaching_hopcroft_karp.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3012-algorithm_teaching_hopcroft_karp.cpp)\n* [urionlinejudge/3012-algorithm_teaching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3012-algorithm_teaching.cpp)\n* [uva/10330-power_transmission.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10330-power_transmission.cpp)\n* [uva/11167-monkeys_in_the_emei_mountain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11167-monkeys_in_the_emei_mountain.cpp)\n\nMinimum Cost Flow\n\n* [cses/parcel_delivery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/parcel_delivery.cpp)\n* [cses/task_assignment.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/task_assignment.cpp)\n* [kattis/catering.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/catering.cpp)\n* [kattis/mincostmaxflow.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mincostmaxflow.cpp)\n\nDijkstra\n\n* [codeforces/cornering_at_poles_dijkstra.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cornering_at_poles_dijkstra.cpp)\n* [kattis/millionairemadness.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/millionairemadness.cpp)\n* [kattis/shortestpath1.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/shortestpath1.cpp)\n* [urionlinejudge/1370-regatta_of_scientists.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1370-regatta_of_scientists.cpp)\n* [uva/10986-sending_email.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10986-sending_email.cpp)\n* [uva/11833-route_change.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11833-route_change.cpp)\n* [uva/13010-galactic_taxes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/13010-galactic_taxes.cpp)\n\nBellman-Ford\n\n* [uva/558-wormholes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/558-wormholes.cpp)\n\nTopological Sort\n\n* [kattis/artur.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/artur.cpp)\n* [kattis/pickupsticks.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pickupsticks.cpp)\n* [leetcode/build-a-matrix-with-conditions.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/build-a-matrix-with-conditions.cpp)\n\nMinimum Dominating Set\n\n* [kattis/socialadvertising.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/socialadvertising.cpp)\n\nHungarian Algorithm for Assignment Problem\n\n* [urionlinejudge/3366-hamilton_the_musical.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3366-hamilton_the_musical.cpp)\n\n\n### Dynamic Programming\n\nCounting, Combinatorics, Math\n\n* [codeforces/impenetrable_wall.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/impenetrable_wall.cpp)\n* [codeforces/keylogger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/keylogger.cpp)\n* [cses/array_description.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/array_description.cpp)\n* [cses/counting_towers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/counting_towers.cpp)\n* [cses/dice_combinations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/dice_combinations.cpp)\n* [cses/rectangle_cutting.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/rectangle_cutting.cpp)\n* [kattis/gigcombinatorics.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/gigcombinatorics.cpp)\n* [kattis/honey.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/honey.cpp)\n* [kattis/permutationdescent.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/permutationdescent.cpp)\n* [kattis/tritiling.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/tritiling.cpp)\n* [leetcode/dice-roll-simulation.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/dice-roll-simulation.cpp)\n* [leetcode/profitable-schemes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/profitable-schemes.cpp)\n* [leetcode/unique-paths-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/unique-paths-ii.cpp)\n* [leetcode/unique-paths.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/unique-paths.cpp)\n* [matcomgrader/H-round_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/H-round_table.cpp)\n* [spoj/BADXOR-bad_xor.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BADXOR-bad_xor.cpp)\n* [spoj/HANOI07-building_the_tower.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/HANOI07-building_the_tower.cpp)\n* [urionlinejudge/1319-hyperactive_girl.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1319-hyperactive_girl.cpp)\n* [urionlinejudge/1493-disjoint_water_supply.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1493-disjoint_water_supply.cpp)\n* [urionlinejudge/2009-just_a_bit_sorted.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2009-just_a_bit_sorted.cpp)\n* [urionlinejudge/3017-fabricating_sculptures.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3017-fabricating_sculptures.cpp)\n* [urionlinejudge/3020-improve_spam.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3020-improve_spam.cpp)\n\nMaximization, Minimization\n\n* [aizu/1164-tighten_up.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/aizu/1164-tighten_up.cpp)\n* [atcoder/A-frog_1.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/A-frog_1.cpp)\n* [atcoder/D-flat_subsequence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/D-flat_subsequence.cpp)\n* [codeforces/boredom.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/boredom.cpp)\n* [codeforces/domino_principle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/domino_principle.cpp)\n* [codeforces/pillars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/pillars.cpp)\n* [google/controlled_inflation.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/controlled_inflation.cpp)\n* [google/moons_and_umbrellas.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/moons_and_umbrellas.cpp)\n* [google/plates.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/plates.cpp)\n* [kattis/3dprinter.go](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/3dprinter.go)\n* [kattis/beautifulbridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/beautifulbridges.cpp)\n* [kattis/centsavings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/centsavings.cpp)\n* [kattis/coke.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/coke.cpp)\n* [kattis/fancy.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/fancy.cpp)\n* [kattis/intervalcover.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/intervalcover.cpp)\n* [kattis/narrowartgallery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/narrowartgallery.cpp)\n* [kattis/nikola.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/nikola.cpp)\n* [kattis/speedrun.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/speedrun.cpp)\n* [kattis/stol.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/stol.cpp)\n* [leetcode/burst-balloons.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/burst-balloons.cpp)\n* [leetcode/cherry-pickup.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/cherry-pickup.cpp)\n* [leetcode/freedom-trail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/freedom-trail.cpp)\n* [leetcode/house-robber-iii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/house-robber-iii.cpp)\n* [leetcode/house-robber.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/house-robber.cpp)\n* [leetcode/jump-game-ii.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-ii.cpp)\n* [leetcode/jump-game-v.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-v.cpp)\n* [leetcode/jump-game-vi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-vi.cpp)\n* [leetcode/maximal-square.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximal-square.cpp)\n* [leetcode/maximum-earnings-from-taxi.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-earnings-from-taxi.cpp)\n* [leetcode/min-cost-climbing-stairs.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/min-cost-climbing-stairs.cpp)\n* [leetcode/minimum-path-sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/minimum-path-sum.cpp)\n* [leetcode/predict-the-winner.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/predict-the-winner.cpp)\n* [leetcode/split-array-largest-sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/split-array-largest-sum.cpp)\n* [leetcode/triangle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/triangle.cpp)\n* [spoj/BORW-black_or_white.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BORW-black_or_white.cpp)\n* [spoj/COINS-bytelandian_gold_coins.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/COINS-bytelandian_gold_coins.cpp)\n* [spoj/KNAPSACK-the_knapsack_problem.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/KNAPSACK-the_knapsack_problem.cpp)\n* [spoj/MPOLY-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MPOLY-polygon.cpp)\n* [spoj/ROCK-sweet_and_sour_rock.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ROCK-sweet_and_sour_rock.cpp)\n* [spoj/THREECOL-threecoloring_of_binary_trees.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/THREECOL-threecoloring_of_binary_trees.cpp)\n* [urionlinejudge/1315-not_too_convex_hull_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1315-not_too_convex_hull_2.cpp)\n* [urionlinejudge/1863-ramsays_counterattack.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1863-ramsays_counterattack.cpp)\n* [urionlinejudge/2008-exposing_corruption.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2008-exposing_corruption.cpp)\n* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)\n* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)\n* [urionlinejudge/2665-hipercampo.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2665-hipercampo.cpp)\n* [urionlinejudge/3023-leverage_mdt.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3023-leverage_mdt.cpp)\n* [urionlinejudge/3064-elastico.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3064-elastico.cpp)\n\nProbability, Games, Optimal Strategy\n\n* [kattis/bachetsgame.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bachetsgame.cpp)\n* [leetcode/can-i-win.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/can-i-win.cpp)\n* [leetcode/divisor-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/divisor-game.cpp)\n* [leetcode/frog-jump.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/frog-jump.cpp)\n* [leetcode/odd-even-jump.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/odd-even-jump.cpp)\n* [leetcode/regular-expression-matching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/regular-expression-matching.cpp)\n* [leetcode/wildcard-matching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/wildcard-matching.cpp)\n* [leetcode/word-break.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/word-break.cpp)\n* [spoj/AE2A-dice.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/AE2A-dice.cpp)\n* [urionlinejudge/3019-hold_or_continue.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3019-hold_or_continue.cpp)\n\n\n### Binary Search, Ternary Search\n\nBinary Search\n\n* [atcoder/D-flat_subsequence.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/atcoder/D-flat_subsequence.cpp)\n* [codeforces/domino_principle.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/domino_principle.cpp)\n* [codeforces/keylogger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/keylogger.cpp)\n* [codeforces/pillars.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/pillars.cpp)\n* [kattis/bridgebuilding.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bridgebuilding.cpp)\n* [kattis/cheese_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cheese_2.cpp)\n* [kattis/cookiecutter.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cookiecutter.cpp)\n* [kattis/dormroomdivide.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/dormroomdivide.cpp)\n* [kattis/messenger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/messenger.cpp)\n* [kattis/monk.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/monk.cpp)\n* [kattis/mountainouslandscape.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/mountainouslandscape.cpp)\n* [kattis/rangers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rangers.cpp)\n* [kattis/speed.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/speed.cpp)\n* [kattis/stringmultimatching.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/stringmultimatching.cpp)\n* [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)\n* [leetcode/dungeon-game.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/dungeon-game.cpp)\n* [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)\n* [leetcode/find-peak-element.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/find-peak-element.cpp)\n* [leetcode/maximize-the-minimum-powered-city.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximize-the-minimum-powered-city.cpp)\n* [leetcode/median-of-two-sorted-arrays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/median-of-two-sorted-arrays.cpp)\n* [leetcode/peak-index-in-a-mountain-array.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/peak-index-in-a-mountain-array.cpp)\n* [leetcode/search-a-2d-matrix.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/search-a-2d-matrix.cpp)\n* [leetcode/search-in-rotated-sorted-array.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/search-in-rotated-sorted-array.cpp)\n* [leetcode/separate-squares-i.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/separate-squares-i.cpp)\n* [leetcode/swim-in-rising-water.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/swim-in-rising-water.cpp)\n* [spoj/AGGRCOW-aggressive_cows.kt](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/AGGRCOW-aggressive_cows.kt)\n* [spoj/BBIN-busqueda_binaria.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BBIN-busqueda_binaria.cpp)\n* [spoj/BBIN2-busqueda_binaria_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/BBIN2-busqueda_binaria_2.cpp)\n* [spoj/MATHLOVE-math_is_love.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MATHLOVE-math_is_love.cpp)\n* [spoj/TAP2013F-flowers_of_babylon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/TAP2013F-flowers_of_babylon.cpp)\n* [urionlinejudge/1108-towers_for_mobile_telephony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1108-towers_for_mobile_telephony.cpp)\n* [urionlinejudge/1549-splitting_the_coke.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1549-splitting_the_coke.cpp)\n* [urionlinejudge/1646-forest.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1646-forest.cpp)\n* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)\n* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)\n* [urionlinejudge/2014-blood_groups.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2014-blood_groups.cpp)\n* [urionlinejudge/2104-lasers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2104-lasers.cpp)\n* [urionlinejudge/2695-arranging_tiles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2695-arranging_tiles.cpp)\n* [urionlinejudge/3013-build_the_perfect_house.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3013-build_the_perfect_house.cpp)\n* [urionlinejudge/3018-gluing_pictures.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3018-gluing_pictures.cpp)\n* [uva/11935-through_the_desert.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11935-through_the_desert.cpp)\n\nTernary Search\n\n* [kattis/asteroids.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/asteroids.cpp)\n* [kattis/euclideantsp.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/euclideantsp.cpp)\n* [kattis/messenger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/messenger.cpp)\n* [urionlinejudge/1294-the_largest_and_smallest_box.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1294-the_largest_and_smallest_box.cpp)\n* [urionlinejudge/1991-factory_of_bridges.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1991-factory_of_bridges.cpp)\n* [urionlinejudge/2015-cake_cut_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2015-cake_cut_2.cpp)\n* [urionlinejudge/2517-pogro_challenge.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2517-pogro_challenge.cpp)\n* [uva/13010-galactic_taxes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/13010-galactic_taxes.cpp)\n\n\n### Trees\n\nTree Problems\n\n* [google/chain_reactions.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/google/chain_reactions.cpp)\n* [kattis/ceiling.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/ceiling.cpp)\n* [kattis/floatingpoints.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/floatingpoints.cpp)\n* [kattis/kitten.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/kitten.cpp)\n* [leetcode/binary-tree-postorder-traversal.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/binary-tree-postorder-traversal.cpp)\n* [leetcode/binary-tree-preorder-traversal.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/binary-tree-preorder-traversal.cpp)\n* [leetcode/construct-quad-tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/construct-quad-tree.cpp)\n* [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)\n* [spoj/PT07Y-is_it_a_tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/PT07Y-is_it_a_tree.cpp)\n* [spoj/PT07Z-longest_path_in_a_tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/PT07Z-longest_path_in_a_tree.cpp)\n* [spoj/THREECOL-threecoloring_of_binary_trees.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/THREECOL-threecoloring_of_binary_trees.cpp)\n* [urionlinejudge/1135-ants_colony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1135-ants_colony.cpp)\n* [urionlinejudge/1195-binary_search_tree.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1195-binary_search_tree.cpp)\n* [urionlinejudge/1200-bst_operations_i.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1200-bst_operations_i.cpp)\n* [urionlinejudge/1493-disjoint_water_supply.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1493-disjoint_water_supply.cpp)\n* [urionlinejudge/3020-improve_spam.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3020-improve_spam.cpp)\n\nCycle Detection\n\n* [kattis/pickupsticks.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/pickupsticks.cpp)\n* [leetcode/build-a-matrix-with-conditions.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/build-a-matrix-with-conditions.cpp)\n\n\n### Other Data Structures \u0026 Algorithms\n\nFast Fourier Transform\n\n* [spoj/POLYMUL-polynomial_multiplication.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/POLYMUL-polynomial_multiplication.cpp)\n\nUnion Find (+ Minimum Spanning Tree)\n\n* [kattis/almostunionfind.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/almostunionfind.cpp)\n* [kattis/cats.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/cats.cpp)\n* [kattis/icefloes.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/icefloes.cpp)\n* [kattis/islandhopping.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/islandhopping.cpp)\n* [kattis/rangers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rangers.cpp)\n* [kattis/rectilinear.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/rectilinear.cpp)\n* [kattis/treehouses.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/treehouses.cpp)\n* [kattis/undetected.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/undetected.cpp)\n* [kattis/unionfind.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/unionfind.cpp)\n* [kattis/wheresmyinternet.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/wheresmyinternet.cpp)\n* [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)\n* [spoj/ANTTT-the_ant.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/ANTTT-the_ant.cpp)\n* [urionlinejudge/1152-dark_roads.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1152-dark_roads.cpp)\n* [urionlinejudge/1268-mission_impossible.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1268-mission_impossible.cpp)\n* [urionlinejudge/1298-fix_the_maze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1298-fix_the_maze.cpp)\n* [urionlinejudge/1468-balloon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1468-balloon.cpp)\n* [urionlinejudge/1844-the_deathly_hallows.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1844-the_deathly_hallows.cpp)\n* [urionlinejudge/3014-cut_inequality_down.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down.cpp)\n\nSparse Table\n\n* [kattis/forestofcelery.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/forestofcelery.cpp)\n* [leetcode/jump-game-v.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/jump-game-v.cpp)\n* [spoj/RMQSQ-range_minimum_query_sparse_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RMQSQ-range_minimum_query_sparse_table.cpp)\n* [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)\n* [urionlinejudge/3014-cut_inequality_down_online.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down_online.cpp)\n\nPrefix Sum\n\n* [codeforces/keylogger.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/keylogger.cpp)\n* [codeforces/new_year_and_cake.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/new_year_and_cake.cpp)\n* [cses/polynomial_queries.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/polynomial_queries.cpp)\n* [kattis/bridgebuilding.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bridgebuilding.cpp)\n* [kattis/centsavings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/centsavings.cpp)\n* [kattis/oldschooldays.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/oldschooldays.cpp)\n* [kattis/queryonarray.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/queryonarray.cpp)\n* [leetcode/number-of-ways-to-select-buildings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/number-of-ways-to-select-buildings.cpp)\n* [spoj/CSUMQ-cumulative_sum_query.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/CSUMQ-cumulative_sum_query.cpp)\n* [spoj/RANGESUM-range_sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/RANGESUM-range_sum.cpp)\n* [urionlinejudge/2010-keep_it_energized_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized_2.cpp)\n* [urionlinejudge/2010-keep_it_energized.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2010-keep_it_energized.cpp)\n* [urionlinejudge/2015-cake_cut_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2015-cake_cut_2.cpp)\n* [urionlinejudge/3014-cut_inequality_down_online.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3014-cut_inequality_down_online.cpp)\n* [uva/10324-zeros_and_ones.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/10324-zeros_and_ones.cpp)\n* [uva/11833-route_change.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/uva/11833-route_change.cpp)\n\nLowest Common Ancestor\n\n* [matcomgrader/O-polygon.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/O-polygon.cpp)\n* [urionlinejudge/1135-ants_colony.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1135-ants_colony.cpp)\n\nCoordinate (or Arrays in General) Compression\n\n* [codechef/FLYMODE.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/FLYMODE.cpp)\n* [codechef/LAZER.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/LAZER.cpp)\n* [cses/intersection_points.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/cses/intersection_points.cpp)\n* [kattis/antimatterrain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/antimatterrain.cpp)\n* [leetcode/escape-a-large-maze.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/escape-a-large-maze.cpp)\n* [urionlinejudge/2007-fence_the_vegetables_fail.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2007-fence_the_vegetables_fail.cpp)\n* [urionlinejudge/2700-fundraising.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/2700-fundraising.cpp)\n\nRope\n\n* [kattis/joinstrings.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/joinstrings.cpp)\n\nOrdered Set\n\n* [kattis/gcpc.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/gcpc.cpp)\n* [urionlinejudge/3359-ancient_towers_2.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/3359-ancient_towers_2.cpp)\n\nFast Exponentiation, Fast Fibonacci, Etc\n\n* [spoj/MPOW-power_of_matrix.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MPOW-power_of_matrix.cpp)\n* [urionlinejudge/1151-easy_fibonacci.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1151-easy_fibonacci.cpp)\n* [urionlinejudge/1969-generations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1969-generations.cpp)\n\nModular Division\n\n* [codechef/CNVX4HUL.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codechef/CNVX4HUL.cpp)\n* [codeforces/cqxym_count_permutations.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/codeforces/cqxym_count_permutations.cpp)\n* [kattis/chineseremainder.rb](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/chineseremainder.rb)\n* [matcomgrader/H-round_table.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/matcomgrader/H-round_table.cpp)\n\nSimpson's Integration\n\n* [kattis/bottles.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/bottles.cpp)\n* [kattis/flowers.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/flowers.cpp)\n* [urionlinejudge/1297-environment_protection.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/urionlinejudge/1297-environment_protection.cpp)\n\nKadane's Algorithm (Maximum Subarray Problem)\n\n* [kattis/purplerain.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/kattis/purplerain.cpp)\n* [leetcode/maximum-subarray.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/leetcode/maximum-subarray.cpp)\n* [spoj/MAXSUMSU-maximum_subset_sum.cpp](https://github.com/ChrisVilches/Algorithms/blob/main/spoj/MAXSUMSU-maximum_subset_sum.cpp)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisvilches%2Falgorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisvilches%2Falgorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisvilches%2Falgorithms/lists"}