¿La página no carga? Prueba haciendo clic aquí.
Placeholder

#5909
Subtarea

디저트의 조합 1s 512MB

Problemas

H×W 크기 격자판에는 각 칸에 하나씩 디저트가 올려져 있다. 위에서 i번째 행(1 ≤ i ≤ H)과 왼쪽에서 j번째 열(1 ≤ j ≤ W)에 있는 격자칸을 (i, j)로 표시한다.

각 격자칸에는 젤리(J), 오렌지(O), 아이스크림(I)가 올려져 있는데, 일부 디저트를 사랑하는 사람들은 특정한 조건을 만족하며 젤리, 오렌지, 아이스크림이 위치해 있으면 훌륭한 위치에 있다고 생각한다.

구체적으로, 그 조건은 아래 조건을 만족하는 정수(i, j, k, ℓ)의 상황과 같다.

  • 격자칸(i, j)에 젤리(J)을 배치하고, 격자칸(i, ℓ)에 오렌지(O)를, 격자칸(k, j)에 아이스크림(I)를 배치한다.

  • (1 ≤ i < k ≤ H, 1 ≤ j < ℓ ≤ W)

훌륭한 위치에 있는 디저트의 쌍의 수를 계산하는 프로그램을 작성하시오.


Entrada

입력은 다음과 같이 주어진다.

H W
S1
:
SH

S_i(1 ≤ i ≤ H)는 길이가 W인 문자열이다.

격자칸(i, j)(1 ≤ j ≤ W)에 배열된 디저트는 S_ij번째 문자가 J이면 젤리이고, O이면 오렌지이고, I라면 아이스크림이다.

[제한]

  • 2 ≤ H ≤ 3,000.

  • 2 ≤ W ≤ 3,000.

  • Si는 길이가 W이다 (1 ≤ i ≤ H).

  • Si는 문자 J, O, I 로만 이루어져있다 (1 ≤ i ≤ H).


Salida

각 줄에 훌륭한 위치에 있는 디저트의 쌍의 수를 출력한다.


Subtarea

# Puntaje Condición
#120

H ≤ 100, W ≤ 100

#230

H ≤ 500, W ≤ 500

#350

추가 제한 없음


Ejemplo #1

3 4
JOIJ
JIOO
IIII
3

(i, j, k, ℓ) = (1, 1, 3, 2), (2, 1, 3, 3), (2, 1, 3, 4)


Ejemplo #2

4 4
JJOO
JJOO
IIJO
IIIJ
17


Fuente

JOI 2019

Debes iniciar sesión para escribir código.