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

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

전화 통화

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

요약
집들이 이루는 트리 위에 m개의 전화선이 있고, 각 선은 두 경로의 합집합에 속한 서로 다른 두 집이 비용 w로 통화하게 한다. 집 1에서 연락할 수 있는 최대 집 수와 그때의 최소 비용을 구한다.
난이도

어려움10점 중 9점

유형
그래프, 최소 신장 트리, 트리, DFS
정답자
아직 제출이 없습니다

문제

바이트타운에는 11, 22, …\ldots, nn번으로 표시된 nn채의 집이 있다. 각 집에는 한 사람이 살고 있다. Little Q는 11번 집에 산다. 이 집들을 잇는 n−1n - 1개의 양방향 도로가 나무 구조를 이룬다. 이 문제에서 S(u,v)S (u, v)는 uu번 집에서 vv번 집까지의 최단 경로 위에 있는 모든 집을 담은 집합이다.

바이트타운의 전화선 네트워크는 mm개의 서로 다른 회선으로 구성된다. ii번째 회선은 다섯 정수 a_ia\_i, b_ib\_i, c_ic\_i, d_id\_i, w_iw\_i로 나타내며, S(a_i,b_i)∪S(c_i,d_i)S (a\_i, b\_i) \cup S (c\_i, d\_i)에 속한 서로 다른 두 집 uu, vv가 w_iw\_i 달러의 비용으로 전화 통화를 할 수 있다는 뜻이다.

Little Q는 자기 집에서 큰 파티를 열 계획이고, 가능한 한 많은 사람을 초대하려 한다. 초대 소식을 아는 사람은 누구나 다른 사람에게 몇 번이든 전화를 걸어 초대를 퍼뜨릴 수 있지만, 아무도 자기 집을 떠날 수는 없다.

파티에 참여할 수 있는 사람 수의 최댓값과, 그 최댓값에 도달하기 위한 최소 총비용을 구하는 프로그램을 작성하시오. 답에는 Little Q도 포함된다.

입력

입력의 첫째 줄에는 두 정수 nn과 mm이 주어진다. nn은 집의 수, mm은 전화선의 수이다 (1≤n,m≤1051 \leq n, m \leq 10^5).

다음 n−1n - 1개 줄에는 각각 두 정수 uu와 vv가 주어지며, uu번 집과 vv번 집 사이의 양방향 도로를 나타낸다. 집과 도로가 나무를 이룬다는 것이 보장된다.

다음 mm개 줄 중 ii번째 줄에는 전화선을 나타내는 다섯 정수 a_ia\_i, b_ib\_i, c_ic\_i, d_id\_i, w_iw\_i가 주어진다 (1≤a_i,b_i,c_i,d_i≤n1 \leq a\_i, b\_i, c\_i, d\_i \leq n, 1≤w_i≤1091 \leq w\_i \leq 10^9).

출력

한 줄에 두 정수를 출력한다. 파티에 참여할 수 있는 사람 수의 최댓값과, 그 최댓값에 도달하기 위한 최소 총비용이다.

힌트

가능한 해법 하나는 다음과 같다.

1단계: 1번 집이 1번 회선으로 2번 집에 전화를 건다. 비용은 100이다.

2단계: 1번 집이 1번 회선으로 3번 집에 전화를 건다. 비용은 100이다.

3단계: 2번 집이 2번 회선으로 4번 집에 전화를 건다. 비용은 10이다.

예제1

  1. 예제 1

    입력
    5 2
    1 2
    1 3
    2 4
    2 5
    1 3 2 4 100
    2 2 4 2 10
    
    예상 출력
    4 210