아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

슈퍼 관과 개미 먹이

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

요약
백분율로 갈라지고 제곱 파이프를 켜고 끌 수 있는 트리에서 모든 잎 수요를 만족하는 루트 주입량의 최솟값을 구합니다.
난이도

보통10점 중 5점

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

문제

보비는 아침마다 애완 개미에게 먹이를 준다. 개미는 관 시설이 딸린 사육 상자에서 산다. 이 관 시설은 정점이 NN개인 트리이고, 관 하나가 트리의 간선 하나다. 트리의 루트는 1번 정점이다. 액체는 중력 때문에 부모 정점에서 자식 정점으로만 흐른다.

각 관에는 유량 XiX_i가 있다. 부모 정점에 들어온 액체 가운데 몇 퍼센트가 그 관을 지나 자식 정점으로 흐르는지를 나타내는 값이다. 예를 들어 1번 정점에 액체가 12리터 들어오고 그 아래에 유량이 30인 관과 유량이 70인 관이 하나씩 달려 있으면, 앞의 관에 딸린 자식은 3.6리터를 받고 뒤의 관에 딸린 자식은 8.4리터를 받는다. 같은 정점에서 나가는 관의 유량 합은 항상 100이다.

보비의 관 가운데 일부는 보통 관이 아니다. 지나가는 액체의 양을 제곱하는 초능력이 있는 슈퍼 관이다. 위의 예에서 유량이 30인 관이 슈퍼 관이고 초능력을 켰다면 그 자식은 3.62=12.963.6^2 = 12.96리터를 받고, 다른 자식은 그대로 8.4리터를 받는다. 이러면 정점에서 나가는 액체가 들어온 액체보다 많아진다. 슈퍼 관이라고 부르는 이유가 바로 이것이다.

보비는 슈퍼 관마다 초능력을 켜거나 끌 수 있다. 초능력을 끈 슈퍼 관은 보통 관과 똑같이 동작한다.

개미는 자식이 없는 정점, 즉 리프에만 산다. 리프 ii에 사는 개미를 모두 먹이려면 그 리프가 받는 액체가 KiK_i리터 이상이어야 한다. 보비는 루트에 액체 LL리터를 부어 개미에게 먹이를 준다. 돈이 넉넉하지 않으니 액체를 되도록 적게 사려고 한다. 모든 리프가 필요한 양을 받게 하는 LL의 최솟값을 구하라.

입력으로 주어지는 자료에서 답이 되는 LL은 2⋅1092 \cdot 10^9을 넘지 않는다.

입력

첫째 줄에 정점의 개수 NN이 주어진다 (1≤N≤10001 \le N \le 1000).

다음 N−1N - 1개 줄에 정수 AiA_i, BiB_i, XiX_i, TiT_i가 주어진다 (1≤Ai,Bi≤N1 \le A_i, B_i \le N, 1≤Xi≤1001 \le X_i \le 100, 0≤Ti≤10 \le T_i \le 1). AiA_i와 BiB_i는 관이 잇는 두 정점이고, XiX_i는 그 관의 유량, TiT_i는 슈퍼 관인지 여부다. TiT_i가 1이면 슈퍼 관, 0이면 보통 관이다. 액체는 1번 정점에서 멀어지는 쪽으로 흐르므로 두 정점 가운데 1번에 더 가까운 쪽이 부모다. 주어지는 N−1N - 1개의 관은 트리를 이룬다.

마지막 줄에 정수 KiK_i가 NN개 주어진다. ii번 정점이 리프면 KiK_i는 1 이상 10 이하의 정수이고, 리프가 아니면 −1-1이다.

출력

루트에 부어야 하는 액체의 최소량을 소수점 아래 셋째 자리까지 반올림해서 한 줄에 출력한다. 소수점 아래 자리는 값에 상관없이 항상 세 자리를 적는다. 예를 들어 답이 정확히 8이면 8.000을 출력한다.

예제3

  1. 예제 1

    입력
    5
    1 2 50 0
    1 3 50 0
    2 4 25 0
    2 5 75 1
    -1 -1 4 1 9
    
    예상 출력
    8.000
  2. 예제 2

    입력
    3
    1 2 20 1
    1 3 80 1
    -1 4 8
    
    예상 출력
    10.000
  3. 예제 3

    입력
    6
    1 2 100 1
    2 3 20 0
    2 4 20 0
    2 5 60 0
    4 6 100 1
    -1 -1 1 -1 1 2
    
    예상 출력
    2.659