Solução por Thiago Mota
Conhecimento prévio:;
A primeira observação que temos é que como queremos separar em componentes de soma é necessário que a soma total das componentes seja , pois se a soma total for diferente de não existe maneira de dividir as componentes.
Imagine que nós removemos uma aresta e dividimos em duas componentes, a única soma possível de cada componente isolada também deve ser , pois se a soma das componentes isoladas forem diferente de não existe maneira de divir em componentes menores com soma .
Então, temos que remover arestas de forma que a soma sempre se mantenha , para isso basta escolher qualquer aresta que a soma das componentes resultantes continue sendo . Como o problema é de minimizar o custo, basta escolher as arestas de menor custo que mantenha a soma sendo após a remoção dela. Segue o código: