QOJ.ac

QOJ

حد الوقت: 4 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18672. 制作石膏模型

الإحصائيات

현우는 틀에 석고를 붓고 굳혀서 다양한 모양을 만들어 보는 취미가 있다. 현우가 이번에 준비한 틀은 세로 길이가 $R$, 가로 길이가 $C$, 높이가 $1$인 직육면체 모양이다.

만들어진 모양이 단순하면 석고 모형을 만드는 재미가 떨어진다. 그래서 현우는 지름과 높이가 $1$인 원기둥을 $R \times C$개 가져왔다. 현우는 원기둥을 모두 틀 안에 배치한 다음 빈 공간에 석고를 붓기로 했다.

원기둥을 틀에 배치할 때에는, 틀을 $R \times C$개의 단위 정육면체로 나눈 뒤 각 단위 정육면체 안에 꼭 맞게 넣어야 한다. 원기둥을 배치할 수 있는 방향은 세 가지가 있는데, 회전축이 가로를 향하거나, 세로를 향하거나, 바닥에 수직이도록 놓을 수 있다.

현우가 원기둥을 모두 배치하고 나면 틀에 석고를 부어 굳힌 뒤 모든 원기둥을 제거할 것이다. 그러면 여러 개의 분리된 석고 조각이 만들어진다. 예를 들어, 세로 길이가 $1$이고 가로 길이가 $2$인 직육면체 틀에 두 원기둥을 회전축이 바닥에 수직이도록 배치한다면 총 $6$개의 석고 조각이 만들어진다.

한편, 위 예시에서 원기둥 하나의 회전축이 세로를 향하도록 배치를 바꾼다면 총 $5$개의 석고 조각이 만들어진다.

현우가 틀에 원기둥을 배치하는 방법이 주어졌을 때, 총 몇 개의 석고 조각이 만들어질지 구해 보자.

输入格式

第一行包含两个整数 $R$ 和 $C$,分别表示模具的纵向长度和横向长度,以空格分隔。($1 \le R, C \le 200$)

接下来 $R$ 行,每行包含一个长度为 $C$ 的字符串,表示贤宇放置圆柱体的方式。字符串中字符的含义如下:

  • H:旋转轴沿横向的圆柱体
  • I:旋转轴沿纵向的圆柱体
  • O:旋转轴垂直于底面的圆柱体

输出格式

第一行输出一个整数,表示石膏凝固并移除所有圆柱体后所形成的石膏块的数量。

样例

样例输入 1

1 2
OO

样例输出 1

6

样例输入 2

1 2
OI

样例输出 2

5

样例输入 3

1 2
OH

样例输出 3

4

样例输入 4

2 2
IH
HI

样例输出 4

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.