AMST

시간 제한5초메모리 제한1024 MB

요약
간선 가중치가 t의 일차함수인 연결 그래프에서 최소 스패닝 트리 가중치가 주어진 S가 되는 t를 찾는다.
난이도

어려움10점 중 8점

유형
최소 신장 트리, 기하, 정렬
정답자
아직 제출이 없습니다

문제

정점이 nn개이고 간선이 mm개인 단순 연결 그래프가 주어집니다. 각 간선의 가중치 함수는 일차함수 w_i(t)=a_it+b_iw\_i(t)=a\_it+b\_i (−103≤a_i,b_i≤103-10^3 \le a\_i, b\_i \le 10^3)의 꼴로 구성되며, 가중치의 값은 이 함수에 매개변수 tt를 대입한 값입니다. 따라서, 매개변수 tt의 값에 따라 이 그래프의 최소 스패닝 트리가 달라질 수 있습니다. 어떤 스패닝 트리의 가중치는 매개변수 tt에 어떤 값을 대입했을 때 그 스패닝 트리에 포함된 간선의 가중치의 합이며, 최소 스패닝 트리의 가중치는 모든 스패닝 트리의 가중치 중 최솟값입니다. 정수 SS가 주어질 때, 그래프의 최소 스패닝 트리의 가중치 합이 SS가 되도록 하는 매개변수 tt가 존재하는지 판단하고, 존재한다면 그러한 매개변수 tt의 값을 구하세요.

입력

첫 번째 줄에 정점의 개수 nn과 간선의 개수 mm이 공백으로 구분되어 주어집니다. (2≤n≤1052 \le n \le 10^5, n−1≤m≤min⁡((n2),105)n-1 \le m \le \min({n \choose 2},10^5))

그다음 줄부터 mm개의 줄에 걸쳐 각각 간선을 나타내는 네 정수 u_iu\_i, v_iv\_i, a_ia\_i, b_ib\_i가 주어집니다. 이는 정점 u_iu\_i와 v_iv\_i를 연결하는 간선이 존재하며 가중치 함수는 a_it+b_ia\_it+b\_i라는 의미입니다. (1≤u_i<v_i≤n1 \le u\_i < v\_i \le n, −103≤a_i,b_i≤103-10^3 \le a\_i, b\_i \le 10^3)

m+2m+2번째 줄에는 최소 스패닝 트리의 가중치 합을 나타내는 SS가 주어집니다. (−1012≤S≤1012-10^{12} \le S \le 10^{12})

주어지는 그래프는 단순 연결 그래프임이 보장됩니다.

출력

최소 스패닝 트리의 가중치 합이 SS가 되게 하는 매개변수 tt가 존재한다면, 첫 번째 줄에 YES를 출력하고, 그러한 tt를 두 번째 줄에 출력하세요. 각 간선의 가중치 함수에 매개변수 tt를 대입하였을 때, 최소 스패닝 트리의 가중치 합과 SS의 절대 오차 또는 상대 오차가 10−510^{-5} 이하인 경우 정답으로 인정합니다.

그러한 tt가 존재하지 않다면, 한 줄에 NO를 출력하세요.

제한

  • 가중치 합이 SS가 되게 하는 매개변수 tt가 존재하지 않으면서 가중치 합과 SS의 차가 0.10.1 이하가 되게 하는 tt가 존재하는 입력은 주어지지 않습니다.

예제2

  1. 예제 1

    입력
    3 3
    1 2 3 1
    1 3 1 3
    2 3 5 -10
    100
    
    예상 출력
    YES
    23.9999999999999999
    
  2. 예제 2

    입력
    3 3
    1 2 3 1
    1 3 1 3
    2 3 -5 -10
    -2
    
    예상 출력
    NO