만드는 중입니다

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

누가 크리스마스 소리를 내었는가

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

요약
1번 소켓을 루트로 삼아 R, G, B 전구의 인접 규칙을 지키면서 전체 비용이 K의 배수가 되는 배치의 수를 센다.
난이도

어려움10점 중 8점

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

문제

크리스마스가 얼마 남지 않아 셈터는 트리를 장식하기로 했다. 트리에는 전구를 끼울 소켓이 VV개 달려 있고, 소켓끼리는 전선 V−1V-1개로 이어져 있다. 1번 소켓에서 전선을 따라가면 모든 소켓에 전기가 닿는다. 즉 소켓과 전선은 트리 구조를 이룬다.

각 소켓에는 빨강(RR), 초록(GG), 파랑(BB) 중 한 가지 색의 전구를 하나씩 끼운다. ii번 소켓에 빨강 전구를 끼우면 RiR_i, 초록 전구를 끼우면 GiG_i, 파랑 전구를 끼우면 BiB_i의 비용이 든다. 배치는 다음 두 조건을 지켜야 한다.

  • 초록 전구가 달린 소켓 두 개는 전선으로 직접 이어지지 않는다.
  • 파랑 전구가 달린 소켓에 직접 이어진 소켓에는 모두 초록 전구가 달려 있다.

모든 소켓의 비용을 더한 값이 KK의 배수가 되는 배치가 몇 가지인지 세어라. 답이 매우 커질 수 있으므로 QQ로 나눈 나머지를 출력한다. 소켓 하나라도 전구 색이 다르면 서로 다른 배치로 센다.

1≤V≤10001 \le V \le 1000, 1≤Q≤10001 \le Q \le 1000, 1≤K≤101 \le K \le 10, 0≤Ri,Gi,Bi≤100 \le R_i, G_i, B_i \le 10이다.

입력

첫째 줄에 VV, QQ, KK가 공백으로 구분되어 주어진다.

다음 V−1V-1개의 줄에는 전선으로 이어진 소켓 번호 aa와 bb가 공백으로 구분되어 주어진다.

그다음 VV개의 줄에는 ii번 소켓의 비용 RiR_i, GiG_i, BiB_i가 순서대로 주어진다. 소켓 번호는 1번부터 VV번까지다.

출력

전체 비용이 KK로 나누어떨어지는 배치의 수를 QQ로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3 997 5
    1 2
    2 3
    1 3 5
    2 3 4
    1 2 3
    
    예상 출력
    2
    
  2. 예제 2

    입력
    7 997 10
    1 2
    2 3
    3 4
    1 5
    4 6
    4 7
    7 3 8
    0 2 4
    7 2 9
    0 2 9
    1 4 1
    5 9 0
    0 7 9
    
    예상 출력
    8