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

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

시간은 곧 돈이다

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

요약
N-1개의 간선으로 스패닝 트리를 구성하여 SumTime*SumMoney를 최소화한다.
난이도

보통10점 중 5점

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

문제

한 통신 회사가 NN개의 마을에 초고속 인터넷을 제공하려고 합니다. 이를 위해서는 어느 마을에서 출발하든 다른 모든 마을로 메시지가 전달될 수 있도록, 마을 사이를 잇는 초고속 회선 N−1N-1개로 이루어진 네트워크를 건설하면 충분합니다.

직접 연결이 가능한 모든 마을 쌍은 이미 파악되어 있으며, 연결 가능한 각 회선마다 건설에 드는 비용과 건설에 걸리는 시간을 알고 있습니다.

회사는 전체 네트워크를 건설하는 데 드는 총 시간(회선은 한 번에 하나씩 건설하므로 시간이 더해집니다)과 총 비용을 모두 최소화하고 싶어 합니다. 두 기준 중 하나를 고를 수 없어, 다음과 같이 네트워크의 값을 평가하기로 했습니다.

  • SumTime\text{SumTime} = 선택한 회선들의 건설 시간의 합
  • SumMoney\text{SumMoney} = 선택한 회선들의 건설 비용의 합
  • V=SumTime×SumMoneyV = \text{SumTime} \times \text{SumMoney}

값 VV가 최소가 되도록 건설할 회선 N−1N-1개를 선택하세요.

입력

첫째 줄에 두 정수 NN(마을의 수)과 MM(직접 연결이 가능한 마을 쌍의 수)이 주어집니다. 마을은 00부터 N−1N-1까지 번호가 매겨져 있습니다.

다음 MM개의 줄에는 각각 네 정수 xx, yy, tt, cc가 주어집니다. 이는 마을 xx와 마을 yy를 건설 시간 tt, 비용 cc로 연결할 수 있음을 뜻합니다.

주어진 회선들만으로 모든 마을을 서로 연결할 수 있음이 보장됩니다.

출력

가능한 값 V=SumTime×SumMoneyV = \text{SumTime} \times \text{SumMoney} 중 최솟값을 정수 하나로 출력하세요.

제한

  • 1≤N≤2001 \le N \le 200
  • 1≤M≤10 0001 \le M \le 10\,000
  • 0≤x,y≤N−10 \le x, y \le N-1
  • 1≤t,c≤2551 \le t, c \le 255
  • 한 테스트 케이스는 M=N−1M = N - 1을 만족합니다.

예제1

  1. 예제 1

    입력
    5 7
    0 1 161 79
    0 2 161 15
    0 3 13 153
    1 4 142 183
    2 4 236 80
    3 4 40 241
    2 1 65 92
    
    예상 출력
    139779