반도체 제작
시간 제한4초메모리 제한1024 MB
E1=1.0, EN=-1.0으로 고정된 조건에서 정점 전위와 간선 에너지를 정해 전체 전달 비용의 최솟값을 구합니다. 비용이 음수가 될 수 있으면 HAPPY를 출력합니다.
문제
한별이는 졸업하기 전에 전국 대학생 프로그래밍 대회 동아리 연합에 들어올 후배들을 위해 직접 만든 반도체 몇 개를 기부하려고 한다. 반도체를 최대한 많이 만들기 위해서 반도체 하나를 만드는 데 드는 비용을 최소화하려고 한다.
반도체는 정점이 개, 간선이 개인 방향 그래프 형태이다. 각 정점에는 번부터 번까지 번호가 붙어 있으며, 번 정점은 퍼텐셜 에너지 를 가진다. 퍼텐셜 에너지는 실수 값이며, , 으로 고정되어 있다. 나머지 정점의 퍼텐셜 에너지는 한별이가 임의로 정할 수 있다. 번 정점과 번 정점은 특수한 정점이라서, 번 정점으로 들어오는 간선과 번 정점에서 나가는 간선은 존재하지 않는다.
간선 는 정점 에서 로 양의 에너지와 음의 에너지를 각각 전달할 수 있다. 각 간선은 에너지 전달 효율이라는 값을 가진다. 한별이가 양의 에너지 전달 효율이 , 음의 에너지 전달 효율이 인 간선에 양의 에너지 와 음의 에너지 를 보내면, 간선이 전달하는 에너지의 양은 가 된다. 다만 간선 에 보내는 에너지가 를 만족하지 않으면, 과부하로 반도체가 고장날 수 있다.
반도체의 제작 비용은 각 간선이 전달하는 에너지의 총합이다. 반도체가 고장나지 않으면서 제작 비용이 최소가 되도록, 정점의 퍼텐셜 에너지와 각 간선에 보내는 에너지의 양을 적절히 조절하는 방법을 찾아 보자.
입력
첫 번째 줄에 정점 개수 과 간선 개수 이 공백으로 구분되어 주어진다. (, )
두 번째 줄부터 개의 줄에 걸쳐 간선 정보가 공백으로 구분된 정수 , , , 로 주어진다. 이는 번 정점에서 번 정점으로 향하고, 양의 에너지 전달 효율이 , 음의 에너지 전달 효율이 인 간선이 있다는 뜻이다. 중복 간선은 주어지지 않는다. (, , )
출력
반도체 하나의 제작 비용의 최솟값을 출력한다. 제작 비용이 보다 작아질 수 있다면, 반도체를 생산할 때마다 돈을 얻는 한별이의 기분을 나타내는 단어 HAPPY를 출력한다. 절대 오차 또는 상대 오차는 까지 허용된다. 답이 이상 미만인 입력은 주어지지 않는다.