Write a function to implement a specific algorithm, for example Dijkstra’s algorithm.
Implement dijkstra(graph, start) for a directed graph represented as {node: [[neighbor, weight], ...]}. Return a dictionary containing the shortest distance from start to every node, using None for unreachable nodes. Edge weights are nonnegative, and every node appears as a key in graph.
def dijkstra(graph, start):