A Linear-Time Algorithm for k-Partitioning Doughnut Graphs