영 타블로가 싫은 재우
시간 제한2.5초메모리 제한1024 MB
N개의 영 타블로와 합칠 수 있는 쌍이 주어질 때, 칸 추가/삭제 비용과 무료 거울 합치기를 써서 모든 영 타블로를 직사각형으로 만드는 최소 비용을 구한다.
문제
2023년이 되고, 전년도의 활동을 통해 MatKor는 학부동아리로 승격되었다. 특히 <제2회 MatKor Cup:2023 Winter>가 끝나고 대회 검수자였던 종우, 대회에서 뛰어난 성적으로 입상한 세준이, 대회가 끝난 후 한 문제를 빼고 모두 업솔빙한 하늘이가 MatKor에 합류했다. 인원이 많아진 MatKor는 이때부터 세미나 분반을 실력별로 초, 중, 고급으로 나누어 세미나를 진행하게 되었다.
MatKor에서는 동아리가 설립된 2022년부터 지금까지 한 번도 빠짐없이 세미나 주제 중에 영 타블로가 있다. 매년 동우의 영 타블로 수업을 듣던 재우는 화가 나 이제 영 타블로를 없애버리고자 한다.
영 타블로는 정수로 이루어진 로 나타낼 수 있다. 이는 높이가 이고, 행 부터 순서대로 행까지 각 행의 길이가 인 모양을 의미하는데, 을 만족해야 한다. 예를 들어 영 타블로 은 다음을 의미한다.

동우는 재우에게 처음에 높이가 로 동일한 영 타블로 개를 주었다. 또한, 개의 영 타블로 중 합칠 수 있는 개의 쌍을 주었다. 이제 재우는 아래 행동을 반복하여 모든 영 타블로를 직사각형으로 만들고자 한다. 재우는 한 번 행동할 때, 아래 중 하나를 할 수 있다. 편의상 존재하지 않는 행인 이상의 에 대해 이라 하자.

-
행동 1
- 영 타블로 하나와 해당 영 타블로의 행 하나를 고른다.
- 이때, 고른 행을 행 이라 하면, 과 를 만족해야 한다.
- 의 비용을 들여 해당 행의 마지막 열의 칸을 지운다.
-
행동 2
- 영 타블로 하나와 해당 영 타블로의 행 하나를 고른다.
- 이때, 고른 행을 행 이라 하면, 혹은 을 만족해야 한다.
- 의 비용을 들여 해당 행의 마지막 열 뒤에 칸을 하나 추가한다.
-
행동 3
-
합칠 수 있는 영 타블로 쌍인 , 번 영 타블로를 골라 둘 중 하나를 돌려서 다른 하나와 맞춘다.
-
이때, 칸이 남거나 겹치면 안 되며, 비용은 발생하지 않는다.
- 구체적으로, 두 영 타블로의 높이는 동일해야 하며, 이 높이를 라고 할 때 다음을 만족해야 한다.
- 번 영타블로가 , 번 영타블로가 라고 하면, 인 모든 정수 에 대해 가 동일하다.
-
이 행동 이후 두 영 타블로는 하나의 직사각형이 되며, 두 영 타블로는 더 이상 행동에서 선택될 수 없다.
-
재우는 위의 행동을 원하는 만큼 반복하여 모든 영 타블로를 직사각형으로 만들고 싶다. 이를 위해 필요한 최소 비용과 그 과정을 구해보자. 최종적인 비용은 모든 행동에서 소모된 비용의 합이며, 행동 3을 통해 두 영 타블로를 합치지 않더라도 행동 1이나 행동 2만 사용하여 영 타블로 하나를 하나의 직사각형으로 만들 수 있다는 점에 유의하자.
입력
첫 번째 줄에 영 타블로의 개수 , 합칠 수 있는 영 타블로의 쌍의 개수 , 영 타블로의 높이 가 공백으로 구분되어 주어진다.
두 번째 줄에 비용을 의미하는 정수 , 가 공백으로 구분되어 주어진다.
세 번째 줄부터 개의 줄에 걸쳐 번 부터 번 영 타블로의 초기 상태를 의미하는 개의 정수 가 공백으로 구분되어 한 줄에 영 타블로가 한 개씩 주어진다.
번째 줄부터 개의 줄에 걸쳐 합칠 수 있는 영 타블로 쌍 ; 가 한 줄에 하나씩 공백으로 구분되어 주어진다. 같은 쌍은 여러 번 주어지지 않는다.
출력
첫 번째 줄에 재우가 모든 영 타블로를 없애거나 남아있는 모든 영 타블로를 직사각형으로 만들기 위해 필요한 최소 비용을 출력한다.
두 번째 줄부터 개의 줄에 걸쳐 번부터 번 영 타블로에 대해 번 영 타블로의 최종 상태를 의미하는 두 개의 정수 를 공백으로 구분하여 출력한다. 이는 다음과 같다.
- 만약 해당 영 타블로가 행동 3에 영향을 받지 않고, 자기 자신이 직사각형이 되었다면, 가로를 로 하고, 으로 한다.
- 만약 해당 영 타블로가 행동 3으로 합쳐졌다면, 최종 상태에서 합쳐진 직사각형의 가로를 로 하고, 는 행동 3에서 합쳐진 다른 영 타블로의 번호로 한다.