반도체 제작

아직 제출이 없습니다시간 제한4초메모리 제한1024 MB

문제

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

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

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

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

입력

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

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

출력

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