Before revision:  When the sites may have different weights, we use dynamic programming to generate an 8-approximate solution, which also runs in polynomial time  .
After revision:  When the sites may have different weights, we use dynamic programming to generate an 8-approximate solution, which runs in polynomial time .