만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

승계

면접 대비

시간 제한12초메모리 제한1024 MB

요약
도로망 트리에서 연결된 지역 K개를 골라 사업 가치 합을 최대로 만들고, 그 최댓값을 만드는 방법의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 트리, DFS
정답자
아직 제출이 없습니다

문제

비토는 뉴욕의 여러 지역에서 단순한 올리브유 사업부터 더 위험한 상품까지 다양한 사업을 벌였다. 경쟁은 말 그대로 목숨을 건 싸움이었고, 비토는 이동 중에 가장 취약했다. 그래서 그는 이동에 쓰는 도로 일부를 소독했다. 소독된 도로만으로 자신의 지역 중 어느 두 곳이든 오갈 수 있게 하려는 것이었다. 소독 작업은 비용이 매우 커서, 참모는 필요한 최소한의 도로만 소독하도록 했다.

비토가 늙어 아들 마이클에게 사업을 넘겼다. 카포들도 사업의 몫을 원했다. 그래서 마이클은 자신을 위해 정확히 KK개의 지역을 고르고, 나머지는 카포들이 갖기로 했다. 마이클은 손해를 보는 지역도 포함해 각 지역의 사업 가치를 계산했다. 그는 고른 KK개 지역의 사업 가치 합이 최대가 되면서, 그 지역들끼리 소독된 도로만으로 어느 두 곳이든 오갈 수 있기를 원한다. 또한 자신의 지역이 아닌 곳은 지나가고 싶지 않다. 즉, 고른 지역은 도로망에서 연결된 부분이어야 한다.

가능한 최대 사업 가치 합을 구하라. 그 값을 얻는 방법의 수도 구하라. 방법의 수는 1000000007로 나눈 나머지로 답한다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 공백으로 구분된 세 정수 NN, KK, RR이 주어진다. NN은 지역의 수, KK는 마이클이 고를 지역의 수, RR은 소독된 도로의 수이다. 다음 줄에는 NN개의 정수가 주어지며, ii번째 정수는 ii번째 지역의 사업 가치이다. 이어서 RR개의 줄에 각각 두 정수 from과 to(모두 0부터 시작)가 주어진다. 이는 지역 from과 지역 to 사이에 양방향 소독 도로가 있다는 뜻이다.

출력

각 테스트 케이스마다 공백으로 구분된 두 정수를 한 줄에 출력한다. 첫 번째 정수는 가능한 최대 사업 가치 합이다. 두 번째 정수는 그 값을 얻는 방법의 수를 1000000007로 나눈 나머지이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤K≤N≤1001 \le K \le N \le 100
  • 각 지역의 사업 가치는 −1000-1000 이상 10001000 이하이다.
  • 0≤from,to<N0 \le from, to < N이며, fromfrom과 toto는 서로 다르다.
  • 같은 두 지역을 잇는 도로는 없다.
  • 도로는 모든 지역 쌍을 연결하며, 도로를 하나라도 제거하면 연결되지 않는 지역 쌍이 생긴다.

예제1

  1. 예제 1

    입력
    1
    2 1 1
    10 10
    0 1
    
    예상 출력
    10 2