평면 최대 컷
시간 제한7초메모리 제한512 MB
평면 그래프의 정점을 두 집합으로 나눠, 서로 다른 집합에 속한 간선 비용의 합이 최대가 되도록 구하는 문제입니다.
문제
어떤 그래프에서 최소 컷을 찾는 방법은 많이들 알고 있을 것이다. 최대 컷 문제가 NP-완전이라는 사실도 알려져 있다(정확히는 절단 값이 최소 이상인 컷이 존재하는지 판별하는 결정 문제가 NP-완전이다). 그러나 그래프가 특정한 형태로 제한되면 일반적인 경우보다 문제가 쉬워질 수 있다.
평면 최대 컷 문제를 생각해 보자. 무방향 그래프 는 정점 개와 간선 개로 이루어져 있고, 정점 집합은 이다. 이 그래프는 평면 그래프이며, 그 임베딩이 주어진다. 모든 정점의 좌표는 알려져 있고, 간선을 선분으로 그렸을 때 두 간선이 내부 점을 공유하지 않는다. 간선 에는 정수 비용 가 붙어 있다.
정점 집합을 서로소인 두 집합 와 로 나누되(), 잘린 간선의 비용 합이 최대가 되도록 하라. 간선의 한쪽 끝점은 에, 다른 쪽 끝점은 에 속하면 그 간선을 잘린 간선이라고 한다.
입력
첫 줄에 정점 수 과 간선 수 이 주어진다(, ).
다음 개 줄에는 정점 의 좌표 와 가 주어진다(). 두 점의 좌표는 겹치지 않는다.
다음 개 줄에는 간선 의 정보 , , 가 주어진다(, , ). 간선 가 정점 와 를 잇고 비용이 라는 뜻이다.
출력
첫 줄에 잘린 간선 비용 합의 최댓값을 출력한다.
둘째 줄에 정수 개 을 출력한다. 정점 가 에 속하면 , 에 속하면 이다. 답이 여럿이면 그중 아무거나 출력한다.