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

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

ㄷ 만들기

시간 제한1초메모리 제한256 MB

요약
n×m 격자에 일곱 개의 k×k 정사각형으로 이루어진 디그램 모양 하나를 놓아, 검은 칸을 그 모양과 일치시키는 데 드는 칠하기 비용과 지우기 비용의 합을 최소로 만든다.
난이도

보통10점 중 6점

유형
완전 탐색, 구현, 누적 합, 시뮬레이션
정답자
아직 제출이 없습니다

문제

2021년, 냅다 ㄷ 만들기는 한국인의 기본 소양이 되었다. 우리는 앞에 놓여있는 n×mn \times m 모눈종이에 냅다 ㄷ을 그리려 한다.

ㄷ 모양은 k×kk \times k 정사각형 7개를 붙인 형태로 정의한다. 다음은 각각 k=1,k=2k=1, k=2일 때의 ㄷ 모양이다.

ㄷ 모양이 아닌 것의 예는 다음과 같다.

7개의 k×kk \times k 정사각형으로 이루어지지 않음ㄷ 모양을 뒤집거나 돌릴 수는 없음

모눈종이의 일부 칸에는 이미 검은색이 칠해져 있다. 흰색 칸을 검은색으로 칠하는 데 드는 비용은 aa, 검은색 칸을 지워서 흰색 칸으로 만드는 데 드는 비용은 bb다. 검은색 칸들이 ㄷ 모양을 이룰 수 있도록 하기 위해 드는 최소 비용을 구하는 프로그램을 작성하자.

ㄷ 모양의 위치와 크기에는 제한이 없지만, 뒤집거나 돌릴 수는 없으며, 모눈종이를 벗어나도 안 된다. 또한, 모든 검은색 칸은 ㄷ 모양에 포함되어야 하고, ㄷ 모양에 포함되지 않는 칸은 모두 흰색이어야 한다.

입력

첫 번째 줄에 모눈종이의 크기 n,mn, m이 주어진다.

두 번째 줄에 칸의 색깔을 바꾸는 데 드는 비용 a,ba,b가 주어진다.

다음 nn개의 줄에 길이 mm인 문자열이 주어진다. #은 검은색으로 칠해진 칸, .은 흰색 칸을 의미한다.

출력

첫 번째 줄에 ㄷ 모양을 만들 수 있는 최소 비용을 출력한다.

제한

  • 3≤n,m≤203 \le n,m \le 20
  • 1≤a,b≤10001 \le a,b \le 1000

예제4

  1. 예제 1

    입력
    3 3
    2 5
    #.#
    .#.
    #.#
    
    예상 출력
    11
    
  2. 예제 2

    입력
    6 7
    10 15
    .#####.
    .#####.
    .#.....
    .#.....
    .#####.
    .#####.
    
    예상 출력
    60
    
  3. 예제 3

    입력
    8 8
    1000 1
    ..#..#..
    .#..#..#
    #..#..#.
    ..#..#..
    .#..#..#
    #..#..#.
    ..#..#..
    .#..#..#
    
    예상 출력
    4018
    
  4. 예제 4

    입력
    8 8
    1 1000
    ..#..#..
    .#..#..#
    #..#..#.
    ..#..#..
    .#..#..#
    #..#..#.
    ..#..#..
    .#..#..#
    
    예상 출력
    11018