아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

원반 정리하기

시간 제한2초메모리 제한512 MB

요약
마스터 스택과 자신의 스택에 든 N개의 원판이 주어질 때, 위쪽 K개에만 적용되는 세 가지 재배열 연산을 사용해 원판을 제거하는 최소 비용을 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 스택, 비트 연산, 완전 탐색
정답자
아직 제출이 없습니다

문제

원반 NN개가 쌓인 더미로 게임을 한다. 목표는 내 더미에서 원반을 모두 없애는 것이다. 원반을 없앨 때마다 비용이 들기 때문에, 전체 비용을 가장 작게 만들어야 한다.

원반마다 번호 LL이 하나씩 적혀 있고, 1≤L≤201 \le L \le 20이다.

내 더미를 비우는 데 쓰라고 원반 NN개짜리 마스터 더미도 함께 주어진다.

내 더미의 맨 위 원반을 없애는 방법은 두 가지다.

  1. 내 더미의 맨 위 원반만 없앤다. 그 원반의 번호가 cc면 비용은 cc다.
  2. 마스터 더미의 맨 위 원반과 내 더미의 맨 위 원반을 함께 없앤다. 두 번호가 같을 때만 쓸 수 있고, 비용은 들지 않는다.

내 더미의 위쪽 KK개까지는 순서를 바꿀 수 있다. 단, 순서를 한 번 바꾸면 곧바로 맨 위 원반을 없애야 하므로, 원반 하나를 없앨 때 순서 바꾸기는 많아야 한 번이다. 순서 바꾸기는 위쪽 몇 개를 구간으로 잡아 적용하며, 구간 크기는 더미에 남은 원반 수를 넘을 수 없다. 쓸 수 있는 방법은 세 가지다.

  1. 뒤집기. 위쪽 rr개(2≤r≤K2 \le r \le K)의 순서를 뒤집는다. 위에서부터 읽은 원반이 d1,d2,…,drd_1, d_2, \ldots, d_r이면 뒤집은 뒤에는 위에서부터 dr,…,d2,d1d_r, \ldots, d_2, d_1이 된다. 한 번 뒤집는 비용은 RR이다.
  2. 위로 돌리기. 위쪽 uu개(2≤u≤K2 \le u \le K) 안에서 한 칸 위로 돌린다. 위에서부터 읽은 위쪽 네 개가 d1,d2,d3,d4d_1, d_2, d_3, d_4일 때 위쪽 세 개를 위로 돌리면 d2,d3,d1,d4d_2, d_3, d_1, d_4가 되고, 네 개를 모두 위로 돌리면 d2,d3,d4,d1d_2, d_3, d_4, d_1이 된다. 한 번 돌리는 비용은 UU다.
  3. 아래로 돌리기. 위쪽 dd개(2≤d≤K2 \le d \le K) 안에서 한 칸 아래로 돌린다. 위에서부터 읽은 위쪽 네 개가 d1,d2,d3,d4d_1, d_2, d_3, d_4일 때 위쪽 세 개를 아래로 돌리면 d3,d1,d2,d4d_3, d_1, d_2, d_4가 되고, 네 개를 모두 아래로 돌리면 d4,d1,d2,d3d_4, d_1, d_2, d_3이 된다. 한 번 돌리는 비용은 DD다.

순서를 바꾼 뒤 마스터 더미의 맨 위와 내 더미의 맨 위 번호가 같으면 두 원반을 공짜로 없앨 수 있다. 이때도 1번 방법은 그대로 쓸 수 있어서, 번호만큼 비용을 내고 내 더미의 원반만 없애도 된다. 번호가 다르면 1번 방법만 남는다.

없애는 순서에는 제약이 하나 더 있다. 내 더미의 층은 맨 아래를 00층으로 하여 센다. 처음에 jj층에 있던 원반을 없애려면, 처음에 j+Mj + M층 이상에 있던 원반이 이미 모두 없어져 있어야 한다.

내 더미를 모두 비우는 데 드는 최소 비용을 구하라.

입력

첫째 줄에 정수 여섯 개 NN, KK, MM, DD, UU, RR가 공백으로 구분되어 주어진다.

  • NN (1≤N≤1001 \le N \le 100): 각 더미에 쌓인 원반의 수
  • KK (1≤K≤41 \le K \le 4): 순서 바꾸기가 닿을 수 있는 가장 깊은 위치
  • MM (1≤M≤51 \le M \le 5): 없애는 순서 제약에 쓰는 기준값
  • DD (1≤D≤1061 \le D \le 10^6): 아래로 돌리기의 비용. 고른 구간의 맨 아래 원반이 맨 위로 온다
  • UU (1≤U≤1061 \le U \le 10^6): 위로 돌리기의 비용. 고른 구간의 맨 위 원반이 그 구간의 맨 아래로 간다
  • RR (1≤R≤1061 \le R \le 10^6): 고른 구간을 뒤집는 비용

다음 2N2N개 줄에는 번호 LL (1≤L≤201 \le L \le 20)이 한 줄에 하나씩 주어진다. 앞의 NN개 줄은 마스터 더미의 번호를 위에서 아래 순서로, 뒤의 NN개 줄은 내 더미의 번호를 위에서 아래 순서로 나타낸다.

출력

내 더미에서 원반을 모두 없애는 데 드는 최소 비용을 정수 하나로 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    7 3 3 4 4 3
    5
    6
    3
    5
    4
    1
    2
    3
    5
    6
    5
    1
    4
    1
    
    예상 출력
    5