ICPC 왕국 도로 복구
시간 제한2초메모리 제한1024 MB
사이클이 없고 서로 다른 작업자가 하나씩 맡을 수 있도록 도로 k개를 고를 때, floor(sqrt(a_u + a_v)) 합의 최댓값을 k마다 구합니다.
문제
ICPC 왕국에는 1번부터 번까지 번호가 붙은 개의 도시가 있고, 이 도시들을 잇는 1번부터 번까지 번호가 붙은 개의 도로가 있다. 각 도로는 두 도시를 잇고, 사람들은 도로를 양방향으로 오갈 수 있다. 도시 에는 명의 주민이 살고 있다. 도로 는 도시 와 도시 를 잇는다. 도로 의 경제적 이익은 이다.
어느 날 적이 왕국을 침입해 모든 도로를 파괴했다. 다행히 ICPC 군대가 적을 물리치고 침입을 막아냈다. 전쟁 복구를 위해 ICPC의 왕은 명의 작업자를 고용해 도로를 수리하게 했다. 각 작업자는 최대 한 개의 도로만 수리할 수 있다. 번째 작업자는 번 도로 중 한 개만 수리할 수 있다.
왕은 수리 계획에 쓸모없는 도로가 포함되는 것을 원하지 않는다. 두 도시 와 사이에 단순 경로가 둘 이상 있는 쌍이 존재하면, 그 계획에는 쓸모없는 도로가 포함된 것이다. 단순 경로는 서로 다른 도로의 열 이며, 이 경로를 따라 이동하면 정확히 개의 서로 다른 도시를 방문한다.
왕은 쓸모없는 도로 없이 정확히 개의 도로를 수리했을 때의 최대 경제적 이익을 계산해 달라고 요청한다. 는 1부터 까지 각각에 대해 계산해야 한다.
입력
첫째 줄에 공백으로 구분된 과 이 주어진다. 은 도시의 수, 은 도로의 수이다. 둘째 줄에는 도시 의 주민 수 이 주어진다. 이어지는 개의 줄에는 각각 와 가 주어지며, 도로 가 도시 와 를 잇는다. 다음 줄에는 작업자의 수 가 주어진다. 이어지는 개의 줄은 작업자가 수리할 수 있는 도로를 나타낸다. 번째 줄의 첫 수 는 번째 작업자가 수리할 수 있는 도로의 개수이고, 그 뒤에 서로 다른 정수 가 이어진다. 번째 작업자는 이 도로들 중 한 개만 수리할 수 있다.
출력
개의 수를 출력한다. 번째 수는 쓸모없는 도로 없이 정확히 개의 도로를 수리했을 때의 최대 경제적 이익이다. 그런 계획이 없으면 -1을 출력한다.