<｜begin▁of▁sentence｜>### Instruction:
As a fitness instructor, imagine you're leading a group fitness session where participants are navigating through a challenging obstacle course. In this scenario, think of the obstacle course as a directed graph, where each obstacle represents a vertex, and the paths between obstacles represent edges. 

Now, consider you have a group of participants starting at a designated point, let's call it "Base Camp Zero." Your task is to guide them through the course using a technique similar to a fitness instructor's command of a group. 

How would you use the `bfsiter` method from the Graph Navigator tool to lead the participants through the course effectively? Specifically, how can you ensure that as they progress through the obstacles, they not only know the distance from "Base Camp Zero" but also understand which obstacle they should look to as their guide (their "parent" in this fitness journey)?
### Response:
import igraph as ig

# Create a graph with vertices and directed edges
g = ig.Graph(edges=[(0, 1), (0, 2), (1, 3), (2, 3), (3, 4)], directed=True)

# Run BFS starting from vertex 0
bfs_iter = g.bfsiter(vid=0, mode='out', advanced=True)

# Print the vertices in BFS order along with their distances and parents
for dist, parent, vertex in bfs_iter:
    print(f'Vertex: {vertex}, Distance from root: {dist}, Parent in BFS tree: {parent}')
<|EOT|>
