Last Man Standing
시간 제한1초메모리 제한1024 MB
참가자 사이의 화제성 점수가 주어질 때, N-K번의 대결 결과를 정해 K명만 남기면서 모든 대결 화제성 합을 최대로 만들고 그 대결 순서를 출력한다.
문제
당신은 명의 참가자 중 명을 남기는 서바이벌 프로그램을 만들고 있다. 개의 대결을 통해 최후 생존하는 명을 뽑으려고 한다.
대결은 두 사람끼리 이루어지며, 패배한 쪽은 탈락한다.
서로 다른 두 사람 와 의 대결은 의 화제성을 가지고 있다. 대회의 흥행도는 모든 대결의 화제성의 합을 말한다.
당신은 대회의 흥행도를 최대화하기 위해 대결의 결과를 맘대로 정할 것이다.
대회의 흥행도의 최댓값과, 그 때의 대결 순서를 알아내 보자!
입력
첫째 줄에 참가자의 수 , 생존자의 수 가 공백으로 구분되어 주어진다.
둘째 줄부터 개의 줄에 걸쳐 와 가 대결하였을 때의 화제성을 나타내는 값 이 공백으로 구분되어 주어진다.
주어지는 모든 수는 정수이다.
출력
첫째 줄에 대회의 흥행도의 최댓값을 출력한다.
다음 줄부터 개 줄에 걸쳐 번째 대결의 승자와 패자를 공백으로 구분하여 출력한다.