shortest path + maxflow