{"id":24486196,"url":"https://github.com/tamimehsan/cses-solutions","last_synced_at":"2025-04-13T19:41:00.296Z","repository":{"id":110306251,"uuid":"315233550","full_name":"TamimEhsan/CSES-Solutions","owner":"TamimEhsan","description":"250+ accepted solutions for cses problemset","archived":false,"fork":false,"pushed_at":"2023-12-31T07:00:13.000Z","size":308,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T10:21:16.801Z","etag":null,"topics":["cpp","cses","cses-problem-set-solution","cses-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/TamimEhsan.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}},"created_at":"2020-11-23T07:28:34.000Z","updated_at":"2025-03-21T05:41:40.000Z","dependencies_parsed_at":"2023-12-31T08:19:22.329Z","dependency_job_id":"9b0330e3-a291-440a-9c00-09f3bf98cb96","html_url":"https://github.com/TamimEhsan/CSES-Solutions","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/TamimEhsan%2FCSES-Solutions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TamimEhsan%2FCSES-Solutions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TamimEhsan%2FCSES-Solutions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TamimEhsan%2FCSES-Solutions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TamimEhsan","download_url":"https://codeload.github.com/TamimEhsan/CSES-Solutions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248770279,"owners_count":21158945,"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":["cpp","cses","cses-problem-set-solution","cses-solutions"],"created_at":"2025-01-21T14:33:41.179Z","updated_at":"2025-04-13T19:41:00.272Z","avatar_url":"https://github.com/TamimEhsan.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"This was my practice run for ICPC. There are more than 250 accepted solutions listed here. I have also added tags for some of the problems.\n\n- At first try to come up with a solution by yourself. \n- If you can't then read some article on the associated tags and try again. \n- If you still can't then you proceed to the solution. Try to understand what is going on. Then try your own approach. \n\nThe CSES problems can be found here: https://cses.fi/problemset/list/\nThis set has some classic problems. \n\n\n\nMilestones:\n\n- [x] 25/11/2021: `Solved all Introductory Problems`\n- [x] 30/11/2021: `Solved all Tree Problems`\n- [x] 29/12/2021: `Solved 100th Problem`\n- [x] 05/05/2022: `Solved 150th Problem`\n- [x] 04/10/2022: `Solved all Geometry Problems`\n- [x] 05/12/2022: `Solved 200th Problem`\n- [x] 06/11/2023: `Solved all Range Query Problems`\n- [x] 11/11/2023: `Solved 250th Problem`\n- [x] 03/12/2023: `Solved all Sorting and Searching Problems`\n\n\n\n ##  Introductory Problems\n | Status | Name | Tags | Link |\n | ---- | ---- | ---- | ---- |\n | ✔ | Weird Algorithm |    | [Code](Introductory%20Problems/Weird%20Algorithm.cpp) |\n | ✔ | Missing Number |    | [Code](Introductory%20Problems/Missing%20Number.cpp) |\n | ✔ | Repetitions |    | [Code](Introductory%20Problems/Repetitions.cpp) |\n | ✔ | Increasing Array |    | [Code](Introductory%20Problems/Increasing%20Array.cpp) |\n | ✔ | Permutations |    | [Code](Introductory%20Problems/Permutations.cpp) |\n | ✔ | Number Spiral |    | [Code](Introductory%20Problems/Number%20Spiral.cpp) |\n | ✔ | Two Knights |    | [Code](Introductory%20Problems/Two%20Knights.cpp) |\n | ✔ | Two Sets |    | [Code](Introductory%20Problems/Two%20Sets.cpp) |\n | ✔ | Bit Strings |    | [Code](Introductory%20Problems/Bit%20Strings.cpp) |\n | ✔ | Trailing Zeros |    | [Code](Introductory%20Problems/Trailing%20Zeros.cpp) |\n | ✔ | Coin Piles |    | [Code](Introductory%20Problems/Coin%20Piles.cpp) |\n | ✔ | Palindrome Reorder |    | [Code](Introductory%20Problems/Palindrome%20Reorder.cpp) |\n | ✔ | Gray Code |    | [Code](Introductory%20Problems/Gray%20Code.cpp) |\n | ✔ | Tower of Hanoi |    | [Code](Introductory%20Problems/Tower%20of%20Hanoi.cpp) |\n | ✔ | Creating Strings |    | [Code](Introductory%20Problems/Creating%20Strings.cpp) |\n | ✔ | Apple Division |    | [Code](Introductory%20Problems/Apple%20Division.cpp) |\n | ✔ | Chessboard and Queens |    | [Code](Introductory%20Problems/Chessboard%20and%20Queens.cpp) |\n | ✔ | Digit Queries |    | [Code](Introductory%20Problems/Digit%20Queries.cpp) |\n | ✔ | Grid Paths |    | [Code](Introductory%20Problems/Grid%20Paths.cpp) |\n ##  Sorting and Searching\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Distinct Numbers |    | [Code](Sorting%20and%20Searching/Distinct%20Numbers.cpp) |\n| ✔ | Apartments |    | [Code](Sorting%20and%20Searching/Apartments.cpp) |\n| ✔ | Ferris Wheel |    | [Code](Sorting%20and%20Searching/Ferris%20Wheel.cpp) |\n| ✔ | Concert Tickets |    | [Code](Sorting%20and%20Searching/Concert%20Tickets.cpp) |\n| ✔ | Restaurant Customers |    | [Code](Sorting%20and%20Searching/Restaurant%20Customers.cpp) |\n| ✔ | Movie Festival |    | [Code](Sorting%20and%20Searching/Movie%20Festival.cpp) |\n| ✔ | Sum of Two Values |    | [Code](Sorting%20and%20Searching/Sum%20of%20Two%20Values.cpp) |\n| ✔ | Maximum Subarray Sum |    | [Code](Sorting%20and%20Searching/Maximum%20Subarray%20Sum.cpp) |\n| ✔ | Stick Lengths |    | [Code](Sorting%20and%20Searching/Stick%20Lengths.cpp) |\n| ✔ | Missing Coin Sum |    | [Code](Sorting%20and%20Searching/Missing%20Coin%20Sum.cpp) |\n| ✔ | Collecting Numbers |    | [Code](Sorting%20and%20Searching/Collecting%20Numbers.cpp) |\n| ✔ | Collecting Numbers II |    | [Code](Sorting%20and%20Searching/Collecting%20Numbers%20II.cpp) |\n| ✔ | Playlist |    | [Code](Sorting%20and%20Searching/Playlist.cpp) |\n| ✔ | Towers |    | [Code](Sorting%20and%20Searching/Towers.cpp) |\n| ✔ | Traffic Lights |    | [Code](Sorting%20and%20Searching/Traffic%20Lights.cpp) |\n| ✔ | Josephus Problem I |    | [Code](Sorting%20and%20Searching/Josephus%20Problem%20I.cpp) |\n| ✔ | Josephus Problem II | `OST` | [Code](Sorting%20and%20Searching/Josephus%20Problem%20II.cpp) |\n| ✔ | Nested Ranges Check |    | [Code](Sorting%20and%20Searching/Nested%20Ranges%20Check.cpp) |\n| ✔ | Nested Ranges Count | `Point Update Range Sum` | [Code](Sorting%20and%20Searching/Nested%20Ranges%20Count.cpp) |\n| ✔ | Room Allocation |    | [Code](Sorting%20and%20Searching/Room%20Allocation.cpp) |\n| ✔ | Factory Machines |    | [Code](Sorting%20and%20Searching/Factory%20Machines.cpp) |\n| ✔ | Tasks and Deadlines |    | [Code](Sorting%20and%20Searching/Tasks%20and%20Deadlines.cpp) |\n| ✔ | Reading Books |    | [Code](Sorting%20and%20Searching/Reading%20Books.cpp) |\n| ✔ | Sum of Three Values |    | [Code](Sorting%20and%20Searching/Sum%20of%20Three%20Values.cpp) |\n| ✔ | Sum of Four Values |    | [Code](Sorting%20and%20Searching/Sum%20of%20Four%20Values.cpp) |\n| ✔ | Nearest Smaller Values |    | [Code](Sorting%20and%20Searching/Nearest%20Smaller%20Values.cpp) |\n| ✔ | Subarray Sums I |    | [Code](Sorting%20and%20Searching/Subarray%20Sums%20I.cpp) |\n| ✔ | Subarray Sums II |    | [Code](Sorting%20and%20Searching/Subarray%20Sums%20II.cpp) |\n| ✔ | Subarray Divisibility |    | [Code](Sorting%20and%20Searching/Subarray%20Divisibility.cpp) |\n| ✔ | Subarray Distinct Values | `Two pointers` `Sliding Window` | [Code](Sorting%20and%20Searching/Subarray%20Distinct%20Values.cpp) |\n| ✔ | Array Division |    | [Code](Sorting%20and%20Searching/Array%20Division.cpp) |\n| ✔ | Sliding Median |    | [Code](Sorting%20and%20Searching/Sliding%20Median.cpp) |\n| ✔ | Sliding Cost | `OST` ``Point Update Range Sum`` | [Code](Sorting%20and%20Searching/Sliding%20Cost.cpp) |\n| ✔ | Movie Festival II | `Greedy Scheduling` `Binary Search` | [Code](Sorting%20and%20Searching/Movie%20Festival%20II.cpp) |\n| ✔ | Maximum Subarray Sum II |    | [Code](Sorting%20and%20Searching/Maximum%20Subarray%20Sum%20II.cpp) |\n ##  Dynamic Programming\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Dice Combinations | `Coin change DP` | [Code](Dynamic%20Programming/Dice%20Combinations.cpp) |\n| ✔ | Minimizing Coins | `Coin change DP` | [Code](Dynamic%20Programming/Minimizing%20Coins.cpp) |\n| ✔ | Coin Combinations I | `Coin change DP` | [Code](Dynamic%20Programming/Coin%20Combinations%20I.cpp) |\n| ✔ | Coin Combinations II | `Coin change DP` | [Code](Dynamic%20Programming/Coin%20Combinations%20II.cpp) |\n| ✔ | Removing Digits |    | [Code](Dynamic%20Programming/Removing%20Digits.cpp) |\n| ✔ | Grid Paths |    | [Code](Dynamic%20Programming/Grid%20Paths.cpp) |\n| ✔ | Book Shop |    | [Code](Dynamic%20Programming/Book%20Shop.cpp) |\n| ✔ | Array Description |    | [Code](Dynamic%20Programming/Array%20Description.cpp) |\n| ✔ | Counting Towers |    | [Code](Dynamic%20Programming/Counting%20Towers.cpp) |\n| ✔ | Edit Distance |    | [Code](Dynamic%20Programming/Edit%20Distance.cpp) |\n| ✔ | Rectangle Cutting |    | [Code](Dynamic%20Programming/Rectangle%20Cutting.cpp) |\n| ✔ | Money Sums |    | [Code](Dynamic%20Programming/Money%20Sums.cpp) |\n| ✔ | Removal Game |    | [Code](Dynamic%20Programming/Removal%20Game.cpp) |\n| ✔ | Two Sets II | `Knapsack DP` | [Code](Dynamic%20Programming/Two%20Sets%20II.cpp) |\n| ✔ | Increasing Subsequence | `LIS` | [Code](Dynamic%20Programming/Increasing%20Subsequence.cpp) |\n| ✔ | Projects |    | [Code](Dynamic%20Programming/Projects.cpp) |\n|  | Elevator Rides |    | [Code](Dynamic%20Programming/Elevator%20Rides.cpp) |\n| ✔ | Counting Tilings | `Broken Profile DP` `Bitmask` | [Code](Dynamic%20Programming/Counting%20Tilings.cpp) |\n| ✔ | Counting Numbers | `Digit Dp` | [Code](Dynamic%20Programming/Counting%20Numbers.cpp) |\n ##  Graph Algorithms\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Counting Rooms | `BFS` | [Code](Graph%20Algorithms/Counting%20Rooms.cpp) |\n| ✔ | Labyrinth | `BFS` | [Code](Graph%20Algorithms/Labyrinth.cpp) |\n| ✔ | Building Roads | `BFS` `DFS` `Forest Counting` | [Code](Graph%20Algorithms/Building%20Roads.cpp) |\n| ✔ | Message Route | `BFS` | [Code](Graph%20Algorithms/Message%20Route.cpp) |\n| ✔ | Building Teams | `Bicoloring` `DFS` | [Code](Graph%20Algorithms/Building%20Teams.cpp) |\n| ✔ | Round Trip | `Cycle in undirected graph` `DFS` | [Code](Graph%20Algorithms/Round%20Trip.cpp) |\n| ✔ | Monsters | `BFS` | [Code](Graph%20Algorithms/Monsters.cpp) |\n| ✔ | Shortest Routes I | `Single Source Shortest Path` ` Dijkstra` | [Code](Graph%20Algorithms/Shortest%20Routes%20I.cpp) |\n| ✔ | Shortest Routes II | `All Pair Shortes Path` `Floyd Warshall` | [Code](Graph%20Algorithms/Shortest%20Routes%20II.cpp) |\n| ✔ | High Score | `Single Source Shortest Path` ` Bellman Ford` | [Code](Graph%20Algorithms/High%20Score.cpp) |\n| ✔ | Flight Discount | `Single Source Shortest Path` ` Dijkstra` | [Code](Graph%20Algorithms/Flight%20Discount.cpp) |\n| ✔ | Cycle Finding | `Negative Cycle` `Bellman Ford` | [Code](Graph%20Algorithms/Cycle%20Finding.cpp) |\n|  | Flight Routes |    | [Code](Graph%20Algorithms/Flight%20Routes.cpp) |\n| ✔ | Round Trip II | `DFS` `Cycle in directed graph` | [Code](Graph%20Algorithms/Round%20Trip%20II.cpp) |\n| ✔ | Course Schedule | `Topological Sort` | [Code](Graph%20Algorithms/Course%20Schedule.cpp) |\n| ✔ | Longest Flight Route | `Topological Sort` `DP` | [Code](Graph%20Algorithms/Longest%20Flight%20Route.cpp) |\n| ✔ | Game Routes | `Topological Sort` `DP` | [Code](Graph%20Algorithms/Game%20Routes.cpp) |\n| ✔ | Investigation | `Dijkstra` | [Code](Graph%20Algorithms/Investigation.cpp) |\n| ✔ | Planets Queries I | `Binary Lifting` | [Code](Graph%20Algorithms/Planets%20Queries%20I.cpp) |\n|  | Planets Queries II |    | [Code](Graph%20Algorithms/Planets%20Queries%20II.cpp) |\n| ✔ | Planets Cycles | `DFS` | [Code](Graph%20Algorithms/Planets%20Cycles.cpp) |\n| ✔ | Road Reparation | `Minimum Spanning Tree` `Kruskal` | [Code](Graph%20Algorithms/Road%20Reparation.cpp) |\n| ✔ | Road Construction | `DSU` | [Code](Graph%20Algorithms/Road%20Construction.cpp) |\n| ✔ | Flight Routes Check | `Strongly Connected Components` | [Code](Graph%20Algorithms/Flight%20Routes%20Check.cpp) |\n| ✔ | Planets and Kingdoms | `Strongly Connected Components` | [Code](Graph%20Algorithms/Planets%20and%20Kingdoms.cpp) |\n| ✔ | Giant Pizza | `2-SAT` | [Code](Graph%20Algorithms/Giant%20Pizza.cpp) |\n| ✔ | Coin Collector | `Condensation Graph` `Topological Sort` `DP` | [Code](Graph%20Algorithms/Coin%20Collector.cpp) |\n| ✔ | Mail Delivery |  `Euler Tour - Undirected` | [Code](Graph%20Algorithms/Mail%20Delivery.cpp) |\n|  | De Bruijn Sequence |    | [Code](Graph%20Algorithms/De%20Bruijn%20Sequence.cpp) |\n| ✔ | Teleporters Path |  `Euler Path - Directed`  | [Code](Graph%20Algorithms/Teleporters%20Path.cpp) |\n| ✔ | Hamiltonian Flights | `Hamiltonian Path` `Bitmask DP` | [Code](Graph%20Algorithms/Hamiltonian%20Flights.cpp) |\n| ✔ | Knight's Tour | `Hamiltonian Path` `Heuristics` | [Code](Graph%20Algorithms/Knight's%20Tour.cpp) |\n| ✔ | Download Speed | `Max Flow Min Cut` `Push Relabel` `Dinic` | [Code](Graph%20Algorithms/Download%20Speed.cpp) |\n| ✔ | Police Chase | `Max Flow Min Cut` `Push Relabel` | [Code](Graph%20Algorithms/Police%20Chase.cpp) |\n| ✔ | School Dance | `Max Flow``Bipartite Matching` `Hopkroft Carp` | [Code](Graph%20Algorithms/School%20Dance.cpp) |\n| ✔ | Distinct Routes | `Max Flow` `Dinic` `Path reconstruction` | [Code](Graph%20Algorithms/Distinct%20Routes.cpp) |\n ##  Range Queries\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Static Range Sum Queries |    | [Code](Range%20Queries/Static%20Range%20Sum%20Queries.cpp) |\n| ✔ | Static Range Minimum Queries |    | [Code](Range%20Queries/Static%20Range%20Minimum%20Queries.cpp) |\n| ✔ | Dynamic Range Sum Queries |    | [Code](Range%20Queries/Dynamic%20Range%20Sum%20Queries.cpp) |\n| ✔ | Dynamic Range Minimum Queries |    | [Code](Range%20Queries/Dynamic%20Range%20Minimum%20Queries.cpp) |\n| ✔ | Range Xor Queries |    | [Code](Range%20Queries/Range%20Xor%20Queries.cpp) |\n| ✔ | Range Update Queries |    | [Code](Range%20Queries/Range%20Update%20Queries.cpp) |\n| ✔ | Forest Queries |    | [Code](Range%20Queries/Forest%20Queries.cpp) |\n| ✔ | Hotel Queries |    | [Code](Range%20Queries/Hotel%20Queries.cpp) |\n| ✔ | List Removals |    | [Code](Range%20Queries/List%20Removals.cpp) |\n| ✔ | Salary Queries |    | [Code](Range%20Queries/Salary%20Queries.cpp) |\n| ✔ | Prefix Sum Queries |    | [Code](Range%20Queries/Prefix%20Sum%20Queries.cpp) |\n| ✔ | Pizzeria Queries |    | [Code](Range%20Queries/Pizzeria%20Queries.cpp) |\n| ✔ | Subarray Sum Queries |    | [Code](Range%20Queries/Subarray%20Sum%20Queries.cpp) |\n| ✔ | Distinct Values Queries |    | [Code](Range%20Queries/Distinct%20Values%20Queries.cpp) |\n| ✔ | Increasing Array Queries | `Segment tree` `Tree walking` | [Code](Range%20Queries/Increasing%20Array%20Queries.cpp) |\n| ✔ | Forest Queries II |    | [Code](Range%20Queries/Forest%20Queries%20II.cpp) |\n| ✔ | Range Updates and Sums |    | [Code](Range%20Queries/Range%20Updates%20and%20Sums.cpp) |\n| ✔ | Polynomial Queries | `Lazy Segment Tree` | [Code](Range%20Queries/Polynomial%20Queries.cpp) |\n| ✔ | Range Queries and Copies | `Persistent Segment Tree` | [Code](Range%20Queries/Range%20Queries%20and%20Copies.cpp) |\n ##  Tree Algorithms\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Subordinates | `Subtree DP` | [Code](Tree%20Algorithms/Subordinates.cpp) |\n| ✔ | Tree Matching | `Tree DP` | [Code](Tree%20Algorithms/Tree%20Matching.cpp) |\n| ✔ | Tree Diameter | `Tree Diameter` | [Code](Tree%20Algorithms/Tree%20Diameter.cpp) |\n| ✔ | Tree Distances I | `Tree Diameter` | [Code](Tree%20Algorithms/Tree%20Distances%20I.cpp) |\n| ✔ | Tree Distances II | `Tree Rerooting DP` | [Code](Tree%20Algorithms/Tree%20Distances%20II.cpp) |\n| ✔ | Company Queries I | `Binary Lifting` | [Code](Tree%20Algorithms/Company%20Queries%20I.cpp) |\n| ✔ | Company Queries II | `LCA` | [Code](Tree%20Algorithms/Company%20Queries%20II.cpp) |\n| ✔ | Distance Queries | `LCA` | [Code](Tree%20Algorithms/Distance%20Queries.cpp) |\n| ✔ | Counting Paths | `HLD` | [Code](Tree%20Algorithms/Counting%20Paths.cpp) |\n| ✔ | Subtree Queries | `HLD` | [Code](Tree%20Algorithms/Subtree%20Queries.cpp) |\n| ✔ | Path Queries | `HLD` | [Code](Tree%20Algorithms/Path%20Queries.cpp) |\n| ✔ | Path Queries II | `HLD` | [Code](Tree%20Algorithms/Path%20Queries%20II.cpp) |\n| ✔ | Distinct Colors | `MO on Tree` / `Sack` `Small to Large` | [Code](Tree%20Algorithms/Distinct%20Colors.cpp) [Code]([Code](Tree%20Algorithms/Distinct%20Colors%20Solution2.cpp)) |\n| ✔ | Finding a Centroid | `Centroid` | [Code](Tree%20Algorithms/Finding%20a%20Centroid.cpp) |\n| ✔ | Fixed-Length Paths I | `Centroid Decomposition` | [Code](Tree%20Algorithms/Fixed-Length%20Paths%20I.cpp) |\n| ✔ | Fixed-Length Paths II | `Centroid Decomposition` | [Code](Tree%20Algorithms/Fixed-Length%20Paths%20II.cpp) |\n ##  Mathematics\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Josephus Queries |    | [Code](Mathematics/Josephus%20Queries.cpp) |\n| ✔ | Exponentiation |    | [Code](Mathematics/Exponentiation.cpp) |\n| ✔ | Exponentiation II |    | [Code](Mathematics/Exponentiation%20II.cpp) |\n| ✔ | Counting Divisors |    | [Code](Mathematics/Counting%20Divisors.cpp) |\n| ✔ | Common Divisors |    | [Code](Mathematics/Common%20Divisors.cpp) |\n| ✔ | Sum of Divisors |    | [Code](Mathematics/Sum%20of%20Divisors.cpp) |\n| ✔ | Divisor Analysis |    | [Code](Mathematics/Divisor%20Analysis.cpp) |\n| ✔ | Prime Multiples |    | [Code](Mathematics/Prime%20Multiples.cpp) |\n| ✔ | Counting Coprime Pairs |    | [Code](Mathematics/Counting%20Coprime%20Pairs.cpp) |\n| ✔ | Binomial Coefficients |    | [Code](Mathematics/Binomial%20Coefficients.cpp) |\n| ✔ | Creating Strings II |    | [Code](Mathematics/Creating%20Strings%20II.cpp) |\n| ✔ | Distributing Apples |    | [Code](Mathematics/Distributing%20Apples.cpp) |\n| ✔ | Christmas Party |    | [Code](Mathematics/Christmas%20Party.cpp) |\n| ✔ | Bracket Sequences I |    | [Code](Mathematics/Bracket%20Sequences%20I.cpp) |\n| ✔ | Bracket Sequences II |    | [Code](Mathematics/Bracket%20Sequences%20II.cpp) |\n| ✔ | Counting Necklaces |    | [Code](Mathematics/Counting%20Necklaces.cpp) |\n| ✔ | Counting Grids |    | [Code](Mathematics/Counting%20Grids.cpp) |\n| ✔ | Fibonacci Numbers |    | [Code](Mathematics/Fibonacci%20Numbers.cpp) |\n| ✔ | Throwing Dice |    | [Code](Mathematics/Throwing%20Dice.cpp) |\n| ✔ | Graph Paths I |    | [Code](Mathematics/Graph%20Paths%20I.cpp) |\n| ✔ | Graph Paths II |    | [Code](Mathematics/Graph%20Paths%20II.cpp) |\n| ✔ | Dice Probability |    | [Code](Mathematics/Dice%20Probability.cpp) |\n|  | Moving Robots |    | [Code](Mathematics/Moving%20Robots.cpp) |\n| ✔ | Candy Lottery | `Expected Value` | [Code](Mathematics/Candy%20Lottery.cpp) |\n|  | Inversion Probability |    | [Code](Mathematics/Inversion%20Probability.cpp) |\n| ✔ | Stick Game |    | [Code](Mathematics/Stick%20Game.cpp) |\n| ✔ | Nim Game I |    | [Code](Mathematics/Nim%20Game%20I.cpp) |\n| ✔ | Nim Game II |    | [Code](Mathematics/Nim%20Game%20II.cpp) |\n| ✔ | Stair Game |    | [Code](Mathematics/Stair%20Game.cpp) |\n| ✔ | Grundy's Game |    | [Code](Mathematics/Grundy's%20Game.cpp) |\n| ✔ | Another Game |    | [Code](Mathematics/Another%20Game.cpp) |\n ##  String Algorithms\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Word Combinations | `Trie` `DP` | [Code](String%20Algorithms/Word%20Combinations.cpp) |\n| ✔ | String Matching | `Suffix array` / `Hashing` | [Code](String%20Algorithms/String%20Matching.cpp) |\n| ✔ | Finding Borders | `Z function` `Prefix function` / `Hashing` | [Code](String%20Algorithms/Finding%20Borders.cpp) |\n| ✔ | Finding Periods | `Z function` `Prefix function` / `Hashing` | [Code](String%20Algorithms/Finding%20Periods.cpp) |\n| ✔ | Minimal Rotation | `Suffix Automata` | [Code](String%20Algorithms/Minimal%20Rotation.cpp) |\n| ✔ | Longest Palindrome | `Manacher` | [Code](String%20Algorithms/Longest%20Palindrome.cpp) |\n|  | Required Substring |    | [Code](String%20Algorithms/Required%20Substring.cpp) |\n| ✔ | Palindrome Queries | `Range Sum` `Hashing` | [Code](String%20Algorithms/Palindrome%20Queries.cpp) |\n| ✔ | Finding Patterns |    | [Code](String%20Algorithms/Finding%20Patterns.cpp) |\n| ✔ | Counting Patterns |    | [Code](String%20Algorithms/Counting%20Patterns.cpp) |\n| ✔ | Pattern Positions |    | [Code](String%20Algorithms/Pattern%20Positions.cpp) |\n| ✔ | Distinct Substrings |    | [Code](String%20Algorithms/Distinct%20Substrings.cpp) |\n| ✔ | Repeating Substring | `Hashing` `Binary Search` | [Code](String%20Algorithms/Repeating%20Substring.cpp) |\n| ✔ | String Functions |    | [Code](String%20Algorithms/String%20Functions.cpp) |\n| ✔ | Substring Order I |    | [Code](String%20Algorithms/Substring%20Order%20I.cpp) |\n| ✔ | Substring Order II |    | [Code](String%20Algorithms/Substring%20Order%20II.cpp) |\n| ✔ | Substring Distribution | `Suffix Array` `Longest Common Prefix` | [Code](String%20Algorithms/Substring%20Distribution.cpp) |\n ##  Geometry\n | Status | Name | Tags | Link |\n | ---- | ---- | ---- | ---- |\n | ✔ | Point Location Test |    | [Code](Geometry/Point%20Location%20Test.cpp) |\n | ✔ | Line Segment Intersection |    | [Code](Geometry/Line%20Segment%20Intersection.cpp) |\n | ✔ | Polygon Area |    | [Code](Geometry/Polygon%20Area.cpp) |\n | ✔ | Point in Polygon |    | [Code](Geometry/Point%20in%20Polygon.cpp) |\n | ✔ | Polygon Lattice Points |    | [Code](Geometry/Polygon%20Lattice%20Points.cpp) |\n | ✔ | Minimum Euclidean Distance |    | [Code](Geometry/Minimum%20Euclidean%20Distance.cpp) |\n | ✔ | Convex Hull |    | [Code](Geometry/Convex%20Hull.cpp) |\n ##  Advanced Techniques\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Meet in the Middle |    | [Code](Advanced%20Techniques/Meet%20in%20the%20Middle.cpp) |\n| ✔ | Hamming Distance |    | [Code](Advanced%20Techniques/Hamming%20Distance.cpp) |\n| ✔ | Beautiful Subgrids | `Bitset` | [Code](Advanced%20Techniques/Beautiful%20Subgrids.cpp) |\n| ✔ | Reachable Nodes |    | [Code](Advanced%20Techniques/Reachable%20Nodes.cpp) |\n| ✔ | Reachability Queries |    | [Code](Advanced%20Techniques/Reachability%20Queries.cpp) |\n| ✔ | Cut and Paste | `Implicit Treap` | [Code](Advanced%20Techniques/Cut%20and%20Paste.cpp) |\n| ✔ | Substring Reversals | `Implicit Treap` | [Code](Advanced%20Techniques/Substring%20Reversals.cpp) |\n| ✔ | Reversals and Sums | `Implicit Treap` | [Code](Advanced%20Techniques/Reversals%20and%20Sums.cpp) |\n| ✔ | Necessary Roads | `Bridges` | [Code](Advanced%20Techniques/Necessary%20Roads.cpp) |\n| ✔ | Necessary Cities | `Articulation Points` | [Code](Advanced%20Techniques/Necessary%20Cities.cpp) |\n|  | Eulerian Subgraphs |    | [Code](Advanced%20Techniques/Eulerian%20Subgraphs.cpp) |\n| ✔ | Monster Game I | `DP` `Convex Hull Optimization` | [Code](Advanced%20Techniques/Monster%20Game%20I.cpp) |\n| ✔ | Monster Game II | `DP` `Convex Hull Optimization` | [Code](Advanced%20Techniques/Monster%20Game%20II.cpp) |\n| ✔ | Subarray Squares | `DP` `Convex Hull Optimization` | [Code](Advanced%20Techniques/Subarray%20Squares.cpp) |\n|  | Houses and Schools |    | [Code](Advanced%20Techniques/Houses%20and%20Schools.cpp) |\n| ✔ | Knuth Division | `DP` `Knuth Optimization` | [Code](Advanced%20Techniques/Knuth%20Division.cpp) |\n| ✔ | Apples and Bananas | `FFT` | [Code](Advanced%20Techniques/Apples%20and%20Bananas.cpp) |\n| ✔ | One Bit Positions | `FFT` | [Code](Advanced%20Techniques/One%20Bit%20Positions.cpp) |\n| ✔ | Signal Processing | `FFT` | [Code](Advanced%20Techniques/Signal%20Processing.cpp) |\n| ✔ | New Roads Queries | `HLD` | [Code](Advanced%20Techniques/New%20Roads%20Queries.cpp) |\n| ✔ | Dynamic Connectivity | `Dynamic DSU` | [Code](Advanced%20Techniques/Dynamic%20Connectivity.cpp) |\n| ✔ | Parcel Delivery | `Max Flow Min Cost` `Fixed flow` | [Code](Advanced%20Techniques/Parcel%20Delivery.cpp) |\n| ✔ | Task Assignment | `Max Flow Min Cost` | [Code](Advanced%20Techniques/Task%20Assignment.cpp) |\n| ✔ | Distinct Routes II | `Max Flow Min Cost` `Path reconstruction` | [Code](Advanced%20Techniques/Distinct%20Routes%20II.cpp) |\n ##  Additional Problems\n| Status | Name | Tags | Link |\n| ---- | ---- | ---- | ---- |\n| ✔ | Shortest Subsequence |    | [Code](Additional%20Problems/Shortest%20Subsequence.cpp) |\n| ✔ | Counting Bits |    | [Code](Additional%20Problems/Counting%20Bits.cpp) |\n| ✔ | Swap Game |    | [Code](Additional%20Problems/Swap%20Game.cpp) |\n| ✔ | Prüfer Code | `Prüfer Code` | [Code](Additional%20Problems/Prüfer%20Code.cpp) |\n| ✔ | Acyclic Graph Edges |    | [Code](Additional%20Problems/Acyclic%20Graph%20Edges.cpp) |\n| ✔ | Strongly Connected Edges | `Bridge` | [Code](Additional%20Problems/Strongly%20Connected%20Edges.cpp) |\n|  | Even Outdegree Edges |    | [Code](Additional%20Problems/Even%20Outdegree%20Edges.cpp) |\n| ✔ | Multiplication Table | `Binary Search` `Harmonic Progression` | [Code](Additional%20Problems/Multiplication%20Table.cpp) |\n| ✔ | Advertisement | `Segment Tree` | [Code](Additional%20Problems/Advertisement.cpp) |\n| ✔ | Special Substrings | `Constructive` `Hashing` | [Code](Additional%20Problems/Special%20Substrings.cpp) |\n|  | Permutation Inversions |    | [Code](Additional%20Problems/Permutation%20Inversions.cpp) |\n| ✔ | Maximum Xor Subarray | `Trie` `Divide and Conquer` | [Code](Additional%20Problems/Maximum%20Xor%20Subarray.cpp) |\n| ✔ | Movie Festival Queries | `Greedy Scheduling` `RMQ` `Binary Lifting` | [Code](Additional%20Problems/Movie%20Festival%20Queries.cpp) |\n| ✔ | Chess Tournament | `Greedy` | [Code](Additional%20Problems/Chess%20Tournament.cpp) |\n| ✔ | Tree Traversals |  | [Code](Additional%20Problems/Tree%20Traversals.cpp) |\n| ✔ | Network Renovation | `Euler Tour` | [Code](Additional%20Problems/Network%20Renovation.cpp) |\n| ✔ | Graph Girth | `BFS Tree` | [Code](Additional%20Problems/Graph%20Girth.cpp) |\n| ✔ | Intersection Points | `Range Query with Sweep Line` | [Code](Additional%20Problems/Intersection%20Points.cpp) |\n| ✔ | Inverse Inversions |    | [Code](Additional%20Problems/Inverse%20Inversions.cpp) |\n|  | Monotone Subsequences |    | [Code](Additional%20Problems/Monotone%20Subsequences.cpp) |\n|  | String Reorder |    | [Code](Additional%20Problems/String%20Reorder.cpp) |\n|  | Stack Weights |    | [Code](Additional%20Problems/Stack%20Weights.cpp) |\n|  | Pyramid Array |    | [Code](Additional%20Problems/Pyramid%20Array.cpp) |\n| ✔ | Increasing Subsequence II |    | [Code](Additional%20Problems/Increasing%20Subsequence%20II.cpp) |\n| ✔ | String Removals | `DP` `Cumulative sum` | [Code](Additional%20Problems/String%20Removals.cpp) |\n| ✔ | Bit Inversions |    | [Code](Additional%20Problems/Bit%20Inversions.cpp) |\n| ✔ | Xor Pyramid |    | [Code](Additional%20Problems/Xor%20Pyramid.cpp) |\n| ✔ | Writing Numbers |    | [Code](Additional%20Problems/Writing%20Numbers.cpp) |\n| ✔ | String Transform | `Inverse Burrows Wheeler Transform` | [Code](Additional%20Problems/String%20Transform.cpp) |\n|  | Letter Pair Move Game |    | [Code](Additional%20Problems/Letter%20Pair%20Move%20Game.cpp) |\n| ✔ | Maximum Building I | `Segment Tree` | [Code](Additional%20Problems/Maximum%20Building%20I.cpp) |\n|  | Sorting Methods |    | [Code](Additional%20Problems/Sorting%20Methods.cpp) |\n| ✔ | Cyclic Array | `Binary Search` `Greedy` | [Code](Additional%20Problems/Cyclic%20Array.cpp) |\n|  | List of Sums |    | [Code](Additional%20Problems/List%20of%20Sums.cpp) |\n|  | Increasing Array II |    | [Code](Additional%20Problems/Increasing%20Array%20II.cpp) |\n|  | Food Division |    | [Code](Additional%20Problems/Food%20Division.cpp) |\n| ✔ | Bit Problem | `SOS DP` | [Code](Additional%20Problems/Bit%20Problem.cpp) |\n|  | Swap Round Sorting |    | [Code](Additional%20Problems/Swap%20Round%20Sorting.cpp) |\n|  | Binary Subsequences |    | [Code](Additional%20Problems/Binary%20Subsequences.cpp) |\n| ✔ | Tree Isomorphism I | `Tree Isomorphism` `rooted` | [Code](Additional%20Problems/Tree%20Isomorphism%20I.cpp) |\n| ✔ | Counting Sequences | `Inclusion Exclusion Principle` | [Code](Additional%20Problems/Counting%20Sequences.cpp) |\n| ✔ | Critical Cities | `Dominator Tree` | [Code](Additional%20Problems/Critical%20Cities.cpp) |\n| ✔ | School Excursion | `Knapsack DP` `Bitset` | [Code](Additional%20Problems/School%20Excursion.cpp) |\n|  | Coin Grid |    | [Code](Additional%20Problems/Coin%20Grid.cpp) |\n|  | Robot Path |    | [Code](Additional%20Problems/Robot%20Path.cpp) |\n|  | Programmers and Artists |    | [Code](Additional%20Problems/Programmers%20and%20Artists.cpp) |\n|  | Course Schedule II |    | [Code](Additional%20Problems/Course%20Schedule%20II.cpp) |\n|  | Removing Digits II |    | [Code](Additional%20Problems/Removing%20Digits%20II.cpp) |\n|  | Coin Arrangement |    | [Code](Additional%20Problems/Coin%20Arrangement.cpp) |\n|  | Counting Bishops |    | [Code](Additional%20Problems/Counting%20Bishops.cpp) |\n| ✔ | Grid Puzzle I | `Max Flow Min Cut` | [Code](Additional%20Problems/Grid%20Puzzle%20I.cpp) |\n| ✔ | Grid Puzzle II | `Max Flow Max Cost` | [Code](Additional%20Problems/Grid%20Puzzle%20II.cpp) |\n|  | Empty String |    | [Code](Additional%20Problems/Empty%20String.cpp) |\n| ✔ | Grid Paths | `DP` `Inclusion Exclusion Principle` | [Code](Additional%20Problems/Grid%20Paths.cpp) |\n| ✔ | Bit Substrings | `FFT` | [Code](Additional%20Problems/Bit%20Substrings.cpp) |\n| ✔ | Reversal Sorting | `Implicit Treap` | [Code](Additional%20Problems/Reversal%20Sorting.cpp) |\n|  | Counting Reorders |    | [Code](Additional%20Problems/Counting%20Reorders.cpp) |\n|  | Book Shop II |    | [Code](Additional%20Problems/Book%20Shop%20II.cpp) |\n| ✔ | Network Breakdown | `DSU with rollback` | [Code](Additional%20Problems/Network%20Breakdown.cpp) |\n|  | Visiting Cities |    | [Code](Additional%20Problems/Visiting%20Cities.cpp) |\n|  | Missing Coin Sum Queries |    | [Code](Additional%20Problems/Missing%20Coin%20Sum%20Queries.cpp) |\n| ✔ | Number Grid | `Constructive` | [Code](Additional%20Problems/Number%20Grid.cpp) |\n|  | Maximum Building II |    | [Code](Additional%20Problems/Maximum%20Building%20II.cpp) |\n|  | Filling Trominos |    | [Code](Additional%20Problems/Filling%20Trominos.cpp) |\n| ✔ | Stick Divisions | `Huffman Coding` `greedy` | [Code](Additional%20Problems/Stick%20Divisions.cpp) |\n| ✔ | Coding Company | `Open and Close Interval DP` | [Code](Additional%20Problems/Coding%20Company.cpp) |\n|  | Flight Route Requests |    | [Code](Additional%20Problems/Flight%20Route%20Requests.cpp) |\n|  | Two Stacks Sorting |    | [Code](Additional%20Problems/Two%20Stacks%20Sorting.cpp) |\n| ✔ | Tree Isomorphism II | `Tree Isomorphism` `unrooted` | [Code](Additional%20Problems/Tree%20Isomorphism%20II.cpp) |\n| ✔ | Forbidden Cities | `Block Cut Tree` | [Code](Additional%20Problems/Forbidden%20Cities.cpp) |\n| ✔ | Area of Rectangles | `Range Query and Update with Sweep Line` | [Code](Additional%20Problems/Area%20of%20Rectangles.cpp) |\n|  | Grid Completion |    | [Code](Additional%20Problems/Grid%20Completion.cpp) |\n|  | Creating Offices |    | [Code](Additional%20Problems/Creating%20Offices.cpp) |\n| ✔ | Permutations II | `Connected Component DP` | [Code](Additional%20Problems/Permutations%20II.cpp) |\n|  | Functional Graph Distribution |    | [Code](Additional%20Problems/Functional%20Graph%20Distribution.cpp) |\n|  | New Flight Routes |    | [Code](Additional%20Problems/New%20Flight%20Routes.cpp) |\n|  | Grid Path Construction |    | [Code](Additional%20Problems/Grid%20Path%20Construction.cpp) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamimehsan%2Fcses-solutions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftamimehsan%2Fcses-solutions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamimehsan%2Fcses-solutions/lists"}