가문의 재산

시간 제한10초메모리 제한128 MB

요약
루트 있는 트리에서 서로 조상·자손 관계가 아닌 K개의 노드를 골라 가중치 합의 최댓값을 구하고, 불가능하면 0을 출력한다.
난이도

보통10점 중 7점

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

문제

부유한 가문의 역사를 연구하는 학자들은 각 가문이 실제로 얼마만큼의 부를 축적했는지 알고 싶어 한다. 역사 속 각 인물에게는 여러 '순자산' 기록이 남아 있지만, 상속으로 인한 중복 계산 때문에 이를 단순히 모두 더하는 것은 정확하지 않다. 한 가문의 부를 추정하는 한 가지 방법은, 집합에 속한 누구도 다른 사람의 조상이나 후손이 아닌 KK명의 집합을 골라 그들의 순자산을 합하는 것이다. 이때 가문의 부는 그러한 모든 KK명 집합에 대해 얻을 수 있는 합의 최댓값으로 정의한다.

역사 기록에는 남성 구성원의 순자산만 남아 있으므로, 가계도는 모든 남성이 정확히 한 명의 아버지를 가지고 0명 이상의 아들을 두는 단순한 트리 구조를 이룬다. 또한 다른 모든 구성원의 조상이 되는 사람이 정확히 한 명 존재한다.

가계도 정보가 주어질 때, 위 정의에 따른 가문의 부는 얼마인가?

입력

입력에는 여러 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 정수로 시작한다.

N K

여기서 NN (1≤N≤100,000)(1 \le N \le 100{,}000)은 기록에 남은 가문 구성원의 총수이고, KK (1≤K≤1,000)(1 \le K \le 1{,}000)은 고르려는 집합의 크기이다.

이어지는 NN개의 줄에는 각각 두 정수가 주어진다.

P W

여기서 PP (0≤P≤N)(0 \le P \le N)는 해당 구성원의 부모를 나타낸다. 구성원은 11부터 NN까지 번호가 매겨지며, ii번째 줄에는 구성원 ii의 부모와 재산이 적혀 있다. 루트는 하나뿐이며, 그 구성원은 P=0P=0을 가진다. 트리의 깊이는 1,0001{,}000을 넘지 않고, 당연히 사이클도 존재하지 않는다. WW (1≤W≤1,000)(1 \le W \le 1{,}000)는 해당 구성원의 재산(단위: 백만)이다.

입력은 두 개의 00으로 이루어진 줄로 끝난다.

출력

각 테스트 케이스마다, 트리에서 서로가 서로의 조상이나 후손이 아닌 KK명으로 이루어진 집합이 가질 수 있는 재산의 합의 최댓값(단위: 백만)을 한 줄에 하나의 정수로 출력한다. 그러한 KK명을 고를 수 없다면 00을 출력한다. 불필요한 공백을 넣지 말고, 답 사이에 빈 줄도 넣지 않는다.

예제4

  1. 예제 1

    입력
    11 5
    0 1
    1 1
    1 1
    2 1
    2 1
    3 1
    3 1
    3 1
    5 1
    7 1
    7 1
    11 5
    11 3
    1 1
    4 1
    1 2
    10 2
    10 2
    6 2
    6 1
    10 2
    11 3
    0 4
    7 3
    0 18
    1 20
    1 15
    2 12
    2 6
    3 8
    3 8
    0 0
    
    예상 출력
    5
    10
    36
    
  2. 예제 2

    입력
    1 1
    0 42
    1 2
    0 42
    0 0
    
    예상 출력
    42
    0
    
  3. 예제 3

    입력
    4 1
    0 5
    1 10
    2 1
    3 7
    4 2
    0 5
    1 10
    2 1
    3 7
    0 0
    
    예상 출력
    10
    0
    
  4. 예제 4

    입력
    5 1
    0 100
    1 1
    1 2
    1 3
    1 4
    5 2
    0 100
    1 1
    1 2
    1 3
    1 4
    5 3
    0 100
    1 1
    1 2
    1 3
    1 4
    5 4
    0 100
    1 1
    1 2
    1 3
    1 4
    5 5
    0 100
    1 1
    1 2
    1 3
    1 4
    0 0
    
    예상 출력
    100
    7
    9
    10
    0