만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

직선으로 그리기

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

요약
검은색과 흰색 픽셀로 된 격자를 가로 또는 세로 선분(픽셀당 a, 선분당 b)과 단일 픽셀(비용 c)으로 그리는 최소 비용을 구합니다.
난이도

어려움10점 중 8점

유형
그래프, 동적 계획법
정답자
아직 제출이 없습니다

문제

직사각형 캔버스에 흑백 그림을 그리려고 한다. 그림은 각 픽셀이 검은색 또는 흰색인 격자다. 처음에는 흰색만 있는 캔버스에 검은색 또는 흰색 선이나 점을 그릴 수 있다.

다음 두 연산을 임의의 순서로 조합해서 적용할 수 있다.

  • 가로 또는 세로 선분 위의 픽셀을 검은색 또는 흰색으로 칠한다. 선분의 너비는 픽셀 1개이고 길이는 픽셀 2개 이상이다. 이 연산의 비용은 a×L+ba \times L + b이며, LL은 선분의 픽셀 수다.
  • 픽셀 하나를 검은색 또는 흰색으로 칠한다. 이 연산의 비용은 상수 cc다.

이미 칠한 픽셀은 다음 조건을 지키면 덧칠할 수 있다.

  • 픽셀은 그 전에 최대 한 번만 칠해졌어야 한다. 같은 색으로 칠하는 것도 덧칠에 포함된다. 예를 들어 픽셀을 검은색으로 두 번 칠했다면, 그 뒤로는 검은색으로도 흰색으로도 칠할 수 없다.
  • 흰색으로 칠한 픽셀은 검은색으로 덧칠할 수 없다. 흰색 잉크는 마르는 데 매우 오래 걸려서, 검은색을 덧칠하면 검은색이 아니라 회색이 된다. 검은색 위에 흰색을 덧칠하는 것은 문제없다.

주어진 그림을 그리는 데 드는 최소 총비용을 구하라.

입력

첫 줄에 정수 nn, mm, aa, bb, cc 다섯 개가 주어진다. nn (1≤n≤401 \le n \le 40)과 mm (1≤m≤401 \le m \le 40)은 캔버스의 높이와 너비를 픽셀 단위로 나타낸다. aa (0≤a≤400 \le a \le 40), bb (0≤b≤400 \le b \le 40), cc (0≤c≤400 \le c \le 40)는 칠하는 비용을 정한다. 길이가 LL인 선분을 칠하는 비용은 a×L+ba \times L + b이고, 픽셀 하나를 칠하는 비용은 cc다. 이 상수들은 c≤a+bc \le a + b를 만족한다.

이어지는 nn개의 줄에는 길이 mm인 문자열이 하나씩 주어진다. ii번째 문자열의 jj번째 문자는 ii행 jj열 픽셀이 검은색이면 "#", 흰색이면 "."이다.

출력

최소 비용을 출력한다.

예제4

  1. 예제 1

    입력
    3 3 1 2 3
    .#.
    ###
    .#.
    
    예상 출력
    10
    
  2. 예제 2

    입력
    2 7 0 1 1
    ###.###
    ###.###
    
    예상 출력
    3
    
  3. 예제 3

    입력
    5 5 1 4 4
    ..#..
    ..#..
    ##.##
    ..#..
    ..#..
    
    예상 출력
    24
    
  4. 예제 4

    입력
    7 24 1 10 10
    ###...###..#####....###.
    .#...#...#.#....#..#...#
    .#..#......#....#.#.....
    .#..#......#####..#.....
    .#..#......#......#.....
    .#...#...#.#.......#...#
    ###...###..#........###.
    
    예상 출력
    256