
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Maximum Flow in a Flow Network
								Certification: Advanced Level
								Accuracy: 100%
								Submissions: 5
								Points: 15
							
							Write a Python function that implements the Ford-Fulkerson algorithm to find the maximum flow in a flow network. The flow network is a directed graph where each edge has a capacity, and the algorithm finds the maximum flow from a source vertex to a sink vertex.
Example 1
- Input: Graph = [
 [0, 16, 13, 0, 0, 0],
 [0, 0, 10, 12, 0, 0],
 [0, 4, 0, 0, 14, 0],
 [0, 0, 9, 0, 0, 20],
 [0, 0, 0, 7, 0, 4],
 [0, 0, 0, 0, 0, 0]],
 Source = 0, Sink = 5
- Output: 23
- Explanation: 
- Step 1: Create a residual graph with given capacities.
- Step 2: Find augmenting paths from source to sink using BFS or DFS.
- Step 3: Update residual capacities along each path.
- Step 4: Repeat until no more augmenting paths exist.
- Step 5: The maximum flow possible from vertex 0 to vertex 5 is 23 units.
 
Example 2
- Input: Graph = [
 [0, 10, 0, 10, 0],
 [0, 0, 4, 2, 8],
 [0, 0, 0, 0, 10],
 [0, 0, 6, 0, 10],
 [0, 0, 0, 0, 0]],
 Source = 0, Sink = 4
- Output: 19
- Explanation: 
- Step 1: Create a residual graph with given capacities.
- Step 2: Find augmenting paths from source to sink using BFS or DFS.
- Step 3: Update residual capacities along each path.
- Step 4: Repeat until no more augmenting paths exist.
- Step 5: The maximum flow possible from vertex 0 to vertex 4 is 19 units.
 
Constraints
- 2 ≤ number of vertices ≤ 100
- 0 ≤ edge capacity ≤ 10^9
- Graph is represented as an adjacency matrix
- Time Complexity: O(max_flow * E), where E is the number of edges
- Space Complexity: O(V²), where V is the number of vertices
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use a residual graph to keep track of remaining capacities
- Use BFS or DFS to find an augmenting path from source to sink
- While there is an augmenting path, add the path's bottleneck capacity to the maximum flow
- Update residual capacities of edges and reverse edges along the path
- Return the maximum flow when no more augmenting paths exist
