시간 제한메모리 제한제출정답맞힌 사람정답 비율
4 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)569925.000%

문제

한별이는 졸업하기 전에 전국 대학생 프로그래밍 대회 동아리 연합에 들어올 후배들을 위해 직접 만든 반도체 몇 개를 기부하려고 한다. 이때 반도체를 최대한 많이 만들기 위해서 반도체 하나를 만드는 데 드는 비용을 최소화하려고 한다.

반도체는 정점이 $N$개, 간선이 $M$개인 방향 그래프 형태를 하고 있다. 각 정점에는 $1$번부터 $N$번까지의 번호가 붙어 있으며, $i$번 정점은 퍼텐셜 에너지 $E_i$를 가지고 있다. 퍼텐셜 에너지는 실수 값을 가지며, $E_1=1.0$, $E_N=-1.0$로 고정되어 있고 나머지 정점의 퍼텐셜 에너지는 한별이가 임의로 정할 수 있다. 덧붙여 $1$번 정점과 $N$번 정점은 특수한 정점이기에 $1$번 정점으로 들어오는 간선과 $N$번 정점에서 나가는 간선은 존재하지 않는다.

반도체를 구성하고 있는 간선 $e=(u,v)$은 정점 $u$에서 $v$로 양의 에너지와 음의 에너지를 각각 전달할 수 있다. 반도체의 각 간선은 에너지 전달 효율이라는 값을 가지고 있다. 만약 한별이가 양의 에너지 전달 효율이 $a_e(\ge 0)$, 음의 에너지 전달 효율이 $b_e(\ge 0)$인 간선에 양의 에너지를 양의 실수 $p_e(\ge 0)$, 음의 에너지를 음의 실수 $m_e(\le 0)$만큼 보낸다면, 간선이 전달하는 에너지의 양은 $(a_ep_e+b_em_e)$가 된다. 다만, 간선 $e=(u,v)$에 보내는 에너지가 $p_{(u,v)}+m_{(u,v)}\ge E_u-E_v$를 만족하지 않으면 과부하로 반도체가 고장날 수 있다.

반도체의 제작 비용은 반도체를 구성하는 각 간선이 전달하는 에너지의 총합과 같다. 좋은 일을 하려는 한별이를 도와, 반도체의 각 정점의 퍼텐셜 에너지와 각 간선에 보내는 에너지의 양을 적절히 조절해 반도체가 고장나지 않으면서 제작 비용이 최소가 되도록 해 보자.

입력

첫 번째 줄에는 정점 개수 $N$과 간선 개수 $M$이 공백으로 구분되어 주어진다. $(3\le N\le 500;$ $1\le M\le N(N-1) )$

두 번째 줄부터 총 $M$개의 줄에 걸쳐서 반도체를 구성하고 있는 간선 정보가 공백으로 구분되어 $4$개의 정수 $u$, $v$, $a$, $b$로 주어진다. 이는 $u$번째 정점에서 $v$번째 정점으로 향하고 양의 에너지 전달 효율이 $a$, 음의 에너지 전달 효율이 $b$인 간선이 있음을 의미한다. 중복 간선이 있는 입력은 주어지지 않는다. $(1\le u,v\le N;$ $u\ne v;$ $0\le a,b\le 10^9)$

출력

반도체 하나의 제작 비용의 최솟값을 출력하자. 단, 제작 비용이 $-3\times 10^{-9}$보다 작아질 수 있다면, 반도체를 생산할 때마다 돈을 얻을 수 있는 한별이의 기분을 표현하는 단어인 HAPPY를 출력하자. 절대/상대 오차는 $10^{-9}$까지 허용되며, 답이 $-3\times 10^{-9}$ 이상 $-1\times 10^{-9}$ 미만인 입력은 주어지지 않는다.

예제 입력 1

3 2
1 2 4 2
2 3 2 1

예제 출력 1

4.00

$p_{1,2}=0.0$, $m_{1,2}=0.0$, $p_{2,3}=2.0$, $m_{2,3}=0.0$, $E_2=1.0$로 지정한다면, $p_{1,2}+m_{1,2}=0.0\ge E_1-E_2=0.0$, $p_{2,3}+m_{2,3}=2.0\ge E_2-E_3=2.0$를 만족하게 된다. 비용은 $4.0$가 되며, 이 이상으로 비용을 줄일 수 없다.

예제 입력 2

3 2
1 2 2 4
2 3 1 2

예제 출력 2

HAPPY

$p_{1,2}=3.0$, $m_{1,2}=-2.0$, $p_{2,3}=3.0$, $m_{2,3}=-2.0$, $E_2=0.0$로 지정한다면, $p_{1,2}+m_{1,2}=1.0\ge E_1-E_2=1.0$, $p_{2,3}+m_{2,3}=1.0\ge E_2-E_3=1.0$를 만족하게 된다. 비용은 $-3.0$이 되며, 제작 비용이 음수가 될 수 있기에 한별이는 매우 행복해진다.

출처

University > 전국 대학생 프로그래밍 대회 동아리 연합 > UCPC 2022 E번