Dinic's algorithm implementation for finding the maximum flow in a multi-source multi-sink flow network. The graph represents a map of a city, in which the vertices are intersections and the edges are cycle lanes. Each cycle lane can be used by a restricted number of cyclists at the same time, avoiding possible collisions with other vehicles. A set of intersections contains franchises of a snack company and another set of intersections contains the clients of such company. Then, given a map with all the information needed, the problem is to find the maximum number of cyclists that can leave the franchises set in order to deliver snacks to the clients set without risking their lives.
Read the doc and the spec for more information on the project.