Run Dijkstra while maintaining four arrays:
dist[u] = shortest distance to u.
cnt[u] = number of shortest paths to u.
minEdges[u] = minimum edges on a shortest path to u.
maxEdges[u] = maximum edges on a shortest path to u.
Update all four arrays together during edge relaxation. This tracks multiple properties in a single Dijkstra pass. Initialize: dist[1]=0, cnt[1]=1, minEdges[1]=0, maxEdges[1]=0, and infinity or zero for all other nodes.