우유 펌프질

면접 대비

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

요약
각 간선에 비용과 유량이 주어진 그래프에서 (병목 유량)/(총 비용)을 최대화하는 1번에서 N번 경로를 찾아 그 값에 10^6을 곱한 정수를 출력한다.
난이도

보통10점 중 6점

유형
그래프, 최단 경로, 그리디, 이분 탐색
정답자
아직 제출이 없습니다

문제

농부 존은 우유 생산 규모를 늘리기 위해 새 농장을 샀다. 새 농장은 인근 마을과 파이프망으로 연결되어 있고, FJ는 농장에서 마을로 우유를 퍼 올리는 데 쓸 파이프를 어떤 집합으로 사야 가장 좋은지 알아내려 한다.

파이프망은 NN개의 접합점(파이프의 끝점)으로 표현되며, 편의상 1…N1 \ldots N으로 번호가 붙어 있다(2≤N≤10002 \leq N \leq 1000). 접합점 1은 FJ의 농장이고 접합점 NN은 마을이다. MM개의 양방향 파이프가 있으며(1≤M≤10001 \leq M \leq 1000), 각 파이프는 두 접합점을 연결한다. ii번째 파이프를 사는 데 드는 비용은 c_ic\_i달러이고, 이 파이프는 초당 f_if\_i리터의 우유 유속을 감당할 수 있다.

FJ는 양 끝점이 접합점 1과 NN인 경로 하나에 해당하는 파이프만 사려 한다. 경로의 비용은 경로 위 파이프들의 비용 합이다. 경로의 유속은 경로 위 파이프들의 유속 중 최솟값이다(경로를 따라 흐르는 유량의 병목이 되기 때문이다). FJ는 경로의 유속을 경로의 비용으로 나눈 값을 최대화하려 한다. 11에서 NN으로 가는 경로가 존재함은 보장된다.

입력

첫 줄에 NN과 MM이 주어진다. 이어지는 MM개의 줄 각각은 파이프 하나를 나타내는 네 정수 aa, bb, cc, ff로 이루어진다. aa와 bb는 파이프가 연결하는 서로 다른 두 접합점이고, cc는 비용, ff는 유속이다. 비용과 유속은 모두 1…10001 \ldots 1000 범위의 양의 정수이다.

출력

최적 해의 값에 10610^6을 곱한 값을 정수로 버림하여 출력한다(그 수가 정수가 아니면 그보다 작은 정수로 내림한다).

힌트

11에서 NN으로 가는 경로가 하나뿐인 예이다. 이 경로의 유속은 min⁡(3,4)=3\min(3,4)=3이고 비용은 2+5=72+5=7이다.

예제1

  1. 예제 1

    입력
    3 2
    2 1 2 4
    2 3 5 3
    
    예상 출력
    428571