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

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

빨간 직사각형

면접 대비

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

요약
빨강과 파랑으로 칠한 N행 M열 격자에서 빨간 칸으로만 이루어진 직사각형 개수를 셉니다.
난이도

보통10점 중 6점

유형
스택, 동적 계획법, 행렬
정답자
아직 제출이 없습니다

문제

N×MN \times M 크기의 격자판이 있다. 각 칸은 빨간색 또는 파란색으로 칠해져 있다. ii행 jj열(1≤i≤N1 \le i \le N, 1≤j≤M1 \le j \le M)의 칸을 (i,j)(i, j)로 나타낸다.

격자판에서 빨간 칸으로만 이루어진 직사각형이 몇 개인지 세는 프로그램을 작성하라. 직사각형은 1≤x1≤x2≤N1 \le x_1 \le x_2 \le N, 1≤y1≤y2≤M1 \le y_1 \le y_2 \le M을 만족하는 네 정수 x1,y1,x2,y2x_1, y_1, x_2, y_2로 정해지며, x1≤x≤x2x_1 \le x \le x_2와 y1≤y≤y2y_1 \le y \le y_2를 만족하는 모든 칸 (x,y)(x, y)의 모임이다. 예를 들어 x1=2x_1 = 2, y1=3y_1 = 3, x2=4x_2 = 4, y2=4y_2 = 4이면 여섯 칸 (2,3)(2, 3), (2,4)(2, 4), (3,3)(3, 3), (3,4)(3, 4), (4,3)(4, 3), (4,4)(4, 4)가 한 직사각형에 속한다. 네 정수 x1,y1,x2,y2x_1, y_1, x_2, y_2 중 하나라도 다르면 서로 다른 직사각형이다.

입력

첫째 줄에 행의 수 NN(1≤N≤30001 \le N \le 3000)과 열의 수 MM(1≤M≤30001 \le M \le 3000)이 공백으로 구분되어 주어진다.

다음 NN개의 줄에는 각각 MM개의 문자가 주어진다. ii번째 줄은 격자판 ii번째 행에 칠해진 색을 나타내고, 그 줄의 jj번째 문자는 (i,j)(i, j)의 색이다. 문자는 'R' 또는 'B'뿐이며, 'R'은 그 칸이 빨간색임을, 'B'는 파란색임을 뜻한다.

출력

빨간 칸으로만 이루어진 직사각형의 개수를 첫째 줄에 출력한다.

힌트

첫 번째 예제에서 조건을 만족하는 직사각형 5개는 다음과 같다. [x1,y1,x2,y2][x_1, y_1, x_2, y_2]로 나타냈다.

  • [1,1,1,1][1, 1, 1, 1]
  • [1,1,1,2][1, 1, 1, 2]
  • [1,2,1,2][1, 2, 1, 2]
  • [1,1,2,1][1, 1, 2, 1]
  • [2,1,2,1][2, 1, 2, 1]

예제1

  1. 예제 1

    입력
    2 2
    RR
    RB
    
    예상 출력
    5