
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Dijkstra's Algorithm
								Certification: Advanced Level
								Accuracy: 0%
								Submissions: 0
								Points: 15
							
							Write a C++ program to find the shortest path from a source vertex to all other vertices in a weighted graph using Dijkstra's algorithm. The program should print the shortest distance from the source to every other vertex.
Example 1
- Input: 
  
- Number of vertices: 5
 - Number of edges: 7
 - Edge 0: from 0 to 1, weight 9
 - Edge 1: from 0 to 2, weight 6
 - Edge 2: from 0 to 3, weight 5
 - Edge 3: from 0 to 4, weight 3
 - Edge 4: from 2 to 1, weight 2
 - Edge 5: from 2 to 3, weight 4
 - Edge 6: from 3 to 4, weight 2
 - Source vertex: 0
 
 - Output: 
  
- Shortest distance from vertex 0 to vertex 0: 0
 - Shortest distance from vertex 0 to vertex 1: 8
 - Shortest distance from vertex 0 to vertex 2: 6
 - Shortest distance from vertex 0 to vertex 3: 5
 - Shortest distance from vertex 0 to vertex 4: 3
 
 - Explanation: 
  
- Step 1: Initialize distances (0 for source, infinity for others)
 - Step 2: Select vertex with minimum distance (initially source)
 - Step 3: Update distances to adjacent vertices if shorter path found
 - Step 4: Path to vertex 1: 0→2→1 with distance 8 (6+2)
 - Step 5: Path to vertex 4: Direct from 0 with distance 3
 - Step 6: Repeat until all vertices processed
 
 
Example 2
- Input: 
  
- Number of vertices: 4
 - Number of edges: 5
 - Edge 0: from 0 to 1, weight 1
 - Edge 1: from 0 to 2, weight 4
 - Edge 2: from 1 to 2, weight 2
 - Edge 3: from 1 to 3, weight 5
 - Edge 4: from 2 to 3, weight 1
 - Source vertex: 0
 
 - Output: 
  
- Shortest distance from vertex 0 to vertex 0: 0
 - Shortest distance from vertex 0 to vertex 1: 1
 - Shortest distance from vertex 0 to vertex 2: 3
 - Shortest distance from vertex 0 to vertex 3: 4
 
 - Explanation: 
  
- Step 1: Initialize distances (0 for source, infinity for others)
 - Step 2: Path to vertex 1: Direct from 0 with distance 1
 - Step 3: Path to vertex 2: 0→1→2 with distance 3 (1+2)
 - Step 4: Path to vertex 3: 0→1→2→3 with distance 4 (1+2+1)
 
 
Constraints
- 1 ≤ V ≤ 10^3 (number of vertices)
 - 0 ≤ E ≤ 10^5 (number of edges)
 - 1 ≤ weight ≤ 10^4
 - Time Complexity: O(E log V)
 - Space Complexity: O(V + E)
 
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 an adjacency list to represent the graph.
 - Use a priority queue (min-heap) to efficiently extract the vertex with the minimum distance.
 - Maintain a distance array to keep track of the shortest distances from the source.
 - Initialize the distance of the source vertex as 0 and all other vertices as infinity.
 - Process vertices in order of increasing distance from the source.