Consider the following Directed graph with Node and Edge Weights.

Is there a non NP-Hard algorithm to find out the path of maximal score, where
score = sum(node weights) - sum(edge weights)
For the example graph, maximal score path is along path A -> B -> C -> D. Maximal score being 164 ((77 + 27 + 32 + 84) - (44 + 12 + 0)).