만드는 중입니다

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

k개 트리 노드에서 사과와 배를 최대로 수확하기

면접 대비

시간 제한3초메모리 제한512 MB

요약
루트 0을 포함하는 연결된 노드를 k개 이하로 골라 사과 수와 배 수의 곱이 최대가 되는 개수를 출력합니다.
난이도

보통10점 중 5점

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

문제

nn개의 노드와 n−1n-1개의 간선으로 구성된 트리 TT가 있다. 노드 번호는 0부터 n−1n-1까지이고 0번 노드가 루트이다. 간선에는 가중치가 없다. 트리 TT의 각 노드에는 사과가 1개 있거나, 배가 1개 있거나, 사과와 배가 모두 없다. 루트 노드에서 시작하여 이웃한 노드를 방문하면서 사과와 배를 수확한다. 최대 kk개의 노드를 방문하면서 사과와 배를 수확할 때, 사과의 개수 ×\times 배의 개수가 최대가 되는 사과의 개수와 배의 개수를 출력하자. 사과의 개수 ×\times 배의 개수가 최대가 되는 경우가 여러 가지이면 사과의 개수가 더 많은 경우를 출력한다. 최대 곱이면서 사과의 개수가 같은 경우가 여러 가지이면 배의 개수가 더 많은 경우를 출력한다. 여러 번 방문한 노드도 한 번 방문한 것으로 본다. 루트 노드도 방문한 노드로 본다. 사과 또는 배가 있는 노드를 여러 번 방문해도 처음 방문할 때만 사과 또는 배 1개를 수확할 수 있다.

입력

첫 번째 줄에 노드의 수 nn과 정수 kk가 공백을 사이에 두고 순서대로 주어진다.

두 번째 줄부터 n−1n-1개 줄에 걸쳐 간선 정보가 한 줄에 하나씩 주어진다. 간선 정보는 부모 노드 번호 pp와 자식 노드 번호 cc가 공백을 사이에 두고 순서대로 주어진다.

다음 줄에는 0번 노드부터 n−1n-1번 노드까지의 정보를 나타내는 정수 nn개가 공백을 사이에 두고 순서대로 주어진다. ii번째 수는 i−1i-1번 노드의 정보이다. 노드 정보가 0이면 사과와 배가 모두 없고, 1이면 사과만 1개 있고, 2이면 배만 1개 있다.

출력

첫 번째 줄에 문제 조건에 맞는 사과의 개수와 배의 개수를 공백을 사이에 두고 순서대로 출력한다.

제한

  • 1≤k≤n≤171 \le k \le n \le 17
  • 0≤p,c≤n−10 \le p, c \le n-1, p≠cp \neq c
  • 간선들로 만들어진 그래프는 트리이다.
  • 노드의 정보는 0 또는 1 또는 2이다.

예제1

  1. 예제 1

    입력
    7 3
    0 1
    0 2
    1 3
    1 4
    2 5
    2 6
    1 1 2 2 2 2 1
    
    예상 출력
    2 1