Given a digraph $𝐺 = (𝑉, 𝐸)$ with integer weights on the edges, vertex $𝑠 ∈ 𝑉$, and an array $𝑎$ of $|𝑉|$ size. Also, $𝑎[𝑣] \geqslant 𝛿 (𝑠, 𝑣)$ (shortest path between 𝑠 and 𝑣 in given graph) holds for all $𝑣 ∈ 𝑉$. The digraph is represented by adjacency lists with weights. Construct an algorithm which checks whether it is true that $𝑎 [𝑣] = 𝛿 (𝑠, 𝑣)$ for all $𝑣 ∈ 𝑉$. Algorithm running time must be linear, that is, $𝑂 (|𝑉| + |𝐸|)$.
First of all, I thought of BFS, but here we have a weighted graph. Then there was an idea to use the shortest paths algorithm for DAGs, but there is no way I can prove that given graph is acyclic. Bellman-Ford algorithm can calculate an array of shortest paths, but it performs for $𝑂 (|𝑉𝐸|)$. To be honest, I really don't know how without calculating shortest distancies solve this problem in linear time.