The algorithm is easier to describe if we formulate the problem using a bipartite graph.
Let us call a function y: (S\cup T) \to \mathbb{R} a potential if y(i)+y(j) \leq c(i, j) for each i \in S, j \in T. The value of potential y is \sum_{v\in S\cup T} y(v).